mose-ml-cli
v1.0.0
Published
``` lerna init ```
Downloads
2
Readme
lerna 使用
初始化 lerna 管理包的项目
lerna init
- 会创建 packages 目录
- git 管理
- 创建 lerna.json
直接创建自定义的包
lerna create @mose-ml-cli/core packages
=> 在 packages 目录下,创建 group 组名为 mose-ml-cli 的名称为 core 的包
安装依赖
- 会为 packages 下的每个包安装 axios
lerna add axios #
lerna notice cli v4.0.0
lerna info Adding axios in 2 packages
lerna info Bootstrapping 2 packages
lerna info Installing external dependencies
lerna info Symlinking packages and binaries
lerna success Bootstrapped 2 packages
清除 packages 中包的所有依赖项
- 删除每个 packages 下的包中的依赖 lerna clean, 就把 node_modules 目录删除了,但是没有删除每个包中 package.json 中的依赖列表, 如果不需要依赖,手工删除即可
"dependencies": {
"axios": "^0.21.1"
}
针对某个特定的包安装特定的依赖
- 比如 core 这个包, 安装 axios
lerna add axios packages/core
如下报错是因为, core 目录下的 package.json 中的 dependencies 已经存在了 axios,需要手工删除,
测试这个时发现,其他的包的依赖也必须删除,即 utils/package.json 中的 dependencies 中对应的依赖包也必须删除
bogon:mose-ml-cli sanfeng$ lerna add axios packages/core
info cli using local version of lerna
lerna notice cli v4.0.0
lerna WARN No packages found where axios can be added.
- 针对某个包安装依赖
lerna add mocha packages/core -D
lerna bootstrap
- 如果 packages 中每个包中的 package.json 中有依赖,如果之前 lerna clean 了(即删除了 node_modules,但是没有清空 dependencies),会自动安装依赖的库(如 axios)
lerna link
- 自动创建 packages 中所有包之间相互依赖的软连接,如果没有依赖是没有效果的
- 按照管理, 修改 utils/lib 下的文件名 从 utils.js => index.js
- 修改 package.json 的 main 入口文件
"main": "lib/utils.js",
- 手动在 core 的 package.json 中增加依赖
"dependencies": { "@mose-ml-cli/utils": "^1.0.0" }
lerna add 安装的依赖是已经发布的包 > lerna link 是连接项目中使用的包,对于已经上线的包通过 add 安装后就不需要使用 link 安装了。
cd \@mose-ml-cli/
bogon:@mose-ml-cli sanfeng$ ls -l
total 0
lrwxr-xr-x 1 sanfeng staff 14 7 3 22:08 utils -> ../../../utils
lerna exec
**--scope: 指定哪个包的范围, **
@mose-ml-cli/core 是某个包中package.json中name属性
lerna exec --scope @mose-ml-cli/core -- rm -rf node_modules
lerna run 执行npm中script中的命令
lerna run test # 执行所有包的npm test的命令
lerna run test @mose-ml-cli/core # 执行指定包的
package.json中的配置
"scripts": {
"test": "echo \"Error: run tests from core\""
},
lerna发布上线
- lerna version
- 每次发布上线,都希望package.json中的version都需要增加一位 1.0.1
通过使用lerna version 增加版本号
需要将代码提交
λ lerna version
lerna notice cli v4.0.0
lerna info current version 1.0.0
lerna info Assuming all packages changed
? Select a new version (currently 1.0.0) (Use arrow keys)
> Patch (1.0.1)
Minor (1.1.0)
Major (2.0.0)
Prepatch (1.0.1-alpha.0)
Preminor (1.1.0-alpha.0)
Premajor (2.0.0-alpha.0)
Custom Prerelease
Custom Version
因为1.0.0还没有创建,暂时先不创建1.0.1这个版本
- lerna changed
和上个版本相比有哪些版本发生了变更
lerna changed
lerna notice cli v4.0.0
lerna info Assuming all packages changed
@mose-ml-cli/core
@mose-ml-cli/utils
lerna success found 2 packages ready to publish
- lerna diff
λ lerna diff
lerna notice cli v4.0.0
diff --git a/packages/core/package.json b/packages/core/package.json
index ca9808b..01b2e6d 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -17,7 +17,7 @@
"registry": "https://registry.npm.taobao.org"
},
"scripts": {
- "test": "echo \"Error: run tests from root\" && exit 1"
+ "test": "echo \"Error: run tests from core\""
},
"dependencies": {
"@mose-ml-cli/utils": "^1.0.0",
diff --git a/packages/utils/package.json b/packages/utils/package.json
index 1e1d488..fc61628 100644