Как предотвратить установку модулей NPM "devDependencies" для Node.js (package.json)? - PullRequest
520 голосов
/ 14 февраля 2012

У меня есть это в моем файле package.json (сокращенная версия):

{
  "name": "a-module",
  "version": "0.0.1",
  "dependencies": {
    "coffee-script":      ">= 1.1.3"
  },
  "devDependencies": {
    "stylus":             ">= 0.17.0"
  }
}

Я использую NPM версии 1.1.1 на Mac 10.6.8.

Когда я запускаю следующую команду из корня проекта, она устанавливает dependencies и devDependencies:

npm install

У меня сложилось впечатление, что эта команда установила devDependencies:

npm install --dev

Как мне сделать так, чтобы npm install только устанавливал dependencies (чтобы производственная среда получала только эти модули), тогда как что-то вроде npm install --dev устанавливает и dependencies, и devDependencies?

Ответы [ 14 ]

1 голос
/ 04 августа 2017

Теперь есть проблема, если у вас есть package-lock.json с npm 5+.Вы должны удалить его перед использованием npm install --production.

1 голос
/ 07 июля 2017

Стоит отметить, что вы можете использовать переменную окружения NODE_ENV для достижения того же результата. Особенно полезно, если вы контейнеризуете свое Node-приложение (например, Docker).

NODE_ENV=production npm install

Приведенный выше код установит все ваши зависимости, кроме dev (т.е. devDependencies).

если вам нужно использовать переменные окружения в вашем Dockerfile, дополнительную информацию можно найти здесь .

Переменные окружения легко перезаписываются при необходимости (например, если вы хотите запустить свой набор тестов, скажем, на Travis CI). Если бы это было так, вы могли бы сделать что-то вроде этого:

docker run -v $(pwd):/usr/src/app --rm -it -e NODE_ENV=production node:8 npm install

Документация NPM здесь

Производство * * тысяча двадцать один

  • По умолчанию: false
  • Тип: Boolean Установите в значение true, чтобы работать в режиме «производство».

    1. devDependencies не устанавливаются на самом верхнем уровне при запуске локальной установки npm без каких-либо аргументов.
    2. Установите NODE_ENV = "production" для сценариев жизненного цикла.

Счастливая контейнеризация =)

0 голосов
/ 25 февраля 2019
npm install --dev will install dev dependencies

И, согласно вопросу установки только зависимостей, следующая команда поможет

npm install --prod will install dependencies
0 голосов
/ 09 октября 2018

npm install --production - это правильный способ установки узловых модулей, необходимых для производства.Проверьте документацию для более подробной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...