он не устанавливает 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