我正在尝试将一个模块作为开发依赖项从 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"
}
如果我现在尝试安装一个新devDependency
的packages/one
,即angular
,我可以cd packages/one
然后yarn add angular --dev
。
但正如lerna 文档中所建议的那样,有一个lerna add
命令应该可以做到这一点。执行上述操作的命令应该如下:
npm run env lerna add angular --scope=one --dev
但是,现在两者看起来packages/one/package.json
又packages/two/package.json
相似了(除了 name 字段)并且条目是作为 adependency
而不是作为 a devDependency
:
{
"name": "one",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"angular": "^1.6.10"
}
}
这是一个错误还是我做错了什么?
编辑:
以防万一这很重要:
- 勒纳版
2.11.0
- npm 版本
5.8.0
- 纱线版
1.6.0
- 节点版本
v9.11.1
- 工作环境
Ubuntu 16.04