Lerna.json
{
"npmClient": "npm",
"version": "independent",
"command": {
"publish": {
"ignoreChanges": ["ignored-file", "*.md"],
"message": "chore(release): publish",
"registry": "http://52.83.246.145:8082/repository/npm/"
},
"bootstrap": {
"ignore": [
"component-*",
"*/pkg-2"
],
"npmClientArgs": ["--no-package-lock"]
}
},
"packages": [
"packages/*"
]
}
bootstrap
ignore
ignore 为 glob,并且其匹配的是 package 的名称,而不是 packages 目录下该 package 的目录名称。
ignore 选项可接受 glob 字符串,或者 glob 字符串数组。
在后面的示例中,每个包的名称都有 @pkg/
前缀,如 pkg-1
的 package.json
文件如下:
{
"name": "@pkg/pkg-1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "wahaha <travellingkitee@gmail.com>",
"license": "ISC"
}
因此,这时候 --ignore
应该去匹配 package.json
文件中的 name
字段,而不是去匹配文件夹名 pkg-1
。
示例
目录结构:
├── lerna.json
├── package.json
└── packages
├── pkg-1
│ └── package.json
├── pkg-2
│ └── package.json
└── pkg-3
└── package.json
bootstrap
多个 package 公共依赖:
lerna bootstrap --hoist