我的package.json文件(简称)中有这个:

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

我正在Mac 10.6.8上使用NPM 1.1.1版。

当我从项目根目录运行以下命令时,它将同时安装依赖项和devDependencies:

npm install

我觉得这个命令安装了devDependencies:

npm install --dev

如何使npm install只安装依赖项(所以生产环境只安装这些模块),而像npm install-dev这样的东西同时安装依赖项和devDependencies?


当前回答

npm-install--production是安装生产所需节点模块的正确方法。有关详细信息,请查看文档

其他回答

我建议使用npm-ci。如果您只想安装生产所需的软件包(正如您所写的那样-没有devDependencies),那么:

npm ci --only=production

or

NODE_ENV=production npm ci

如果您喜欢老式npm安装,那么:

npm install --production

or

NODE_ENV=production npm install

这里有一个很好的答案,为什么你应该使用npm-ci。

如果您在2016年阅读此POST,请使用

--only={prod[uction]|dev[elopment]} 

参数将导致仅安装devDependencies或仅安装非devDependency,而不考虑NODE_ENV。

来自:https://docs.npmjs.com/cli/install

当在开发环境中的包目录中运行时,npm install命令将安装devDependencies以及其他依赖项(默认)。

在8.x及更高版本中,使用--omit=dev标志仅安装常规依赖项:

npm install --omit=dev

这将只安装依赖项,而不安装devDependencies,无论NODE_ENV环境变量的值如何。

如果使用6.x或更早版本,则需要改用--only=prod标志。

注:在npm第3.3.0版(2015-08-13)之前,该选项被称为--production,即。

npm install --production

您可能还需要--没有可选标志。

npm安装--生产--无可选

它只安装依赖项的dep,并将忽略optionalDependencies和devDependencie

我也遇到了那个问题!npm安装有些令人困惑,web帖子不断引入-d/--dev标志,好像有一个明确的“开发”安装模式。

npm安装将同时安装“dependencies”和“devDependenciesnpm安装--生产将只安装“依赖项”npm install--dev将只安装“devDependencies”