【发布时间】:2018-09-09 02:09:10
【问题描述】:
我正在尝试将一个模块作为来自 npm 的开发依赖项添加到我的 lerna 存储库中的几个模块之一,但是这样做时,该模块既没有添加到我的一个模块中,也没有添加为开发依赖。相反,它被添加到我所有的本地模块中,并且它也被添加为正常的依赖项。
我创建了以下内容:
mkdir FirstProject
cd FirstProject
yarn init
yarn add lerna --dev
npm run env lerna init
mkdir packages/one
mkdir packages/two
cd packages/one
yarn init
cd ../..
cd packages/two
yarn init
cd ../..
我现在有以下树结构:
myuser@mylaptop:~/FirstProject$ tree -I node_modules
.
├── lerna.json
├── package.json
├── packages
│ ├── one
│ │ └── package.json
│ └── two
│ └── package.json
└── yarn.lock
packages/one/package.json 和 packages/two/package.json 看起来都一样(名称字段除外):
{
"name": "one",
"version": "1.0.0",
"main": "index.js",
"license": "MIT"
}
如果我现在尝试在packages/one 中安装一个新的devDependency,即angular,我可以先cd packages/one 然后yarn add angular --dev。
但正如lerna documentation 中所建议的,有一个lerna add 命令应该可以做到这一点。执行上述操作的命令应该如下:
npm run env lerna add angular --scope=one --dev
但是,现在packages/one/package.json 和packages/two/package.json 看起来又相似了(名称字段除外),并且条目是dependency 而不是devDependency:
{
"name": "one",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"angular": "^1.6.10"
}
}
这是一个错误还是我做错了什么?
编辑:
以防万一:
- lerna 版本
2.11.0 - npm 版本
5.8.0 - 纱版
1.6.0 - 节点版本
v9.11.1 - 工作环境
Ubuntu 16.04
【问题讨论】:
标签: lerna