详细实现方式以及文件下载请前往 https://www.passerma.com/article/74
执行 npm init -y 初始化项目
使用 npm i lerna -g 全局安装lerna
使用 lerna init 初始化项目
这步需要装有 git 才可以执行,初始化完成后生成lerna.json以及packages文件夹
将一些无需上传的文件忽略
使用
lerna create core
创建脚手架主文件
其中各选项意义如下
package name 项目名 不能和已有npm包重名,我们这里使用@orgName/npmName,是指通过建立orgName组织方式发布npm包
version 版本号 起始1.0.0就ok
description 描述
keywords 关键词
homepage 文件目录,可不填
entry point 主入口,由于我们这里是脚手架主文件,无需配置
但是之后创建模块的时候需要填写主文件入口,之后会演示
git repository git仓库,可不填
然后回车即可创建成功
使用
lerna create utils
创建脚手架工具包
创建过程如上
lerna add [@version] [--dev] [--exact] [--peer]
我们这里以lodash为例,可以选择只安装到utils包里面,输入 lerna add lodash packages/utils
如果需要安装到所有包里,直接不指定包名即可 lerna add lodash
有时候我们需要删除依赖包,则使用 lerna clean 即可
注意:删除后如果需要再重新添加相同依赖包,需要将对应包下面的package.json里的dependencies里的依赖包名删除
lerna bootstrap
lerna bootstrap
这样会帮我们安装package.json里的dependencies依赖项
lerna link
主要是将本地包进行相互引用
比如我们需要在core里引入utils包,则可以现在core包的package.json的dependencies里添加utils的依赖
"dependencies": {
"@passerma-lerna-cli-test/utils":"^1.0.0" }
然后使用 lerna link 即可
然后我们可以看到core包里多了个node_modules文件夹,里面的@passerma-lerna-cli-test/utils软链接到了本地的utils包
lerna exec -- [..args] # runs the command in all packages
该命令运行的目录为 packages目录里的每个包
默认是所有包都执行,比如可以在每个包里新建一个test文件夹
结果如下
也可以指定某个包,使用
lerna exec --scope @passerma-lerna-cli-test/utils -- rm -rf test
注意输入的为package.json里的包名
结果如下,只删除了utils下的test目录
$ lernarun