Npm install не тянет в devDependencies

У меня есть npm v 1.2.32

Когда я запускаю: $ npm install mongo-migrate

он не устанавливает mongodb, который является devDependency.

Что я делаю неправильно?

Ответ 1

Когда вы устанавливаете пакет из репозитория NPM, зависимостей dev также не будут автоматически установлены (потому что эти зависимости не должны быть необходимы для правильной работы основного пакета).

Вам нужно явно указать npm для установки зависимостей dev:

npm install mongo-migrate --dev

Обновление

Команда --dev устарела.

npm WARN install Использование параметра --dev устарело. Вместо этого используйте --only=dev.

npm install mongo-migrate --only=dev

Ответ 2

Хотя это и не связано напрямую с этим вопросом, некоторым может быть интересно узнать, что если переменная окружения NODE_ENV установлена ​​на production, npm будет игнорировать devDependencies при выполнении npm install.

Ответ 3

npm i <package> # without devDependencies cd node_modules/<package> npm i # include devDependencies

"npm я --dev" неверно, поскольку он рекурсивно устанавливает devDependencies.

Ответ 4

У меня только одна и та же проблема, только из-за того, что у меня были devDependencies, которые были определены дважды в моем package.json.

Я написал это вручную с ошибкой и во время поиска неисправностей запускал некоторые установки --save-dev, которые заставляли его отображаться дважды. Кстати, если вы включили "devDependencies" дважды в свой пакет package.json, npm не установит их.

Ответ 5

Мне иногда приходилось устанавливать devDependencies даже с NODE_ENV = production.

Я обычно использую это обходное решение.

// temporarily change NODE_ENV to other value...
NODE_ENV=development npm install