Я пытаюсь добавить модуль в виде dev-зависимости от npm к одному из нескольких модулей, которые есть в моем репозитории lerna, но при этом ни один модуль не добавляется только в один из моих модулей и не добавляется как DEV-зависимость. Вместо этого он добавляется ко всем моим локальным модулям и также добавляется как обычная зависимость.
Я создал следующее:
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
выглядят снова одинаково (за исключением поля имени), и запись была сделана как dependency
, а не как devDependency
:
{
"name": "one",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"dependencies": {
"angular": "^1.6.10"
}
}
Это ошибка или я что-то не так делаю?
EDIT:
На всякий случай, если это имеет значение:
- Лерна версия
2.11.0
- npm версия
5.8.0
- версия пряжи
1.6.0
- версия узла
v9.11.1
- Рабочая среда
Ubuntu 16.04