npm install不会安装devDependencies

Tri*_*ara 229 node.js npm

因为某些原因我在运行npm install它时不会安装devDependencies.它应该是AFAIK.如果我运行npm install --devdevDependencies则安装.我不明白为什么npm install不安装devDependencies,但只安装依赖项.可能是什么原因?我该如何解决?也许smth是我的package.json错了?如果它可能有帮助,它列在下面

{
  "name": "try-brunch",
  "version": "0.1.0",
  "private": "true",
  "devDependencies": {
    "brunch": "^2.0.4",
    "cssnano-brunch": "^1.1.5",
    "javascript-brunch": "^1.8.0",
    "sass-brunch": "^1.9.2",
    "uglify-js-brunch": "^1.7.8"
  },
  "dependencies": {
    "jquery": "^2.1.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

arc*_*don 272

检查NPM文档以进行安装

使用该--production标志(或当NODE_ENV环境变量设置为生产时),npm将不会安装devDependencies中列出的模块."

--only={prod[uction]|dev[elopment]}无论NODE_ENV如何,该参数都将导致仅安装devDependencies或仅安装非devDependencies."

你有没有尝试过

npm install --only=dev
Run Code Online (Sandbox Code Playgroud)

如果您担心package.json可能不正确,那么最好的办法就是这样做.创建一个新文件夹,然后运行:

npm init --yes
Run Code Online (Sandbox Code Playgroud)

然后:

npm install --save-dev brunch@^2.0.4
npm install --save-dev cssnano-brunch@^1.1.5
npm install --save-dev javascript-brunch@^1.8.0
npm install --save-dev sass-brunch@^1.9.2
npm install --save-dev uglify-js-brunch@^1.7.8
npm install jquery@^2.1.4 --save
Run Code Online (Sandbox Code Playgroud)

你应该好好去!否则,将继续发布其他选项.

检查你的npm配置:

npm config list
Run Code Online (Sandbox Code Playgroud)

npm从命令行,环境变量和npmrc文件中获取其配置设置.所以检查环境变量和npmrc文件.

仍然失败?

好的,创建一个新文件夹,理想情况下在文件系统的其他位置.即.不在同一文件夹层次结构中 例如,C:\ myNewFolder - 离基数C越近:驱动越好.

然后运行:

npm init --yes
Run Code Online (Sandbox Code Playgroud)

现在运行:

npm install underscore --save
Run Code Online (Sandbox Code Playgroud)

最后:

npm install mocha --save-dev
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作吗?

我想要做的是了解您的问题是全局的,还是前一个文件夹和依赖项的本地问题.

  • npm install --only=dev 安装 devdeps,但我想同时安装 deps 和 devdeps。package.json 似乎没问题,因为重新创建它不会改变任何东西。我认为 NODE_ENV 既作为默认值全局存在,又作为项目值存在于本地是否正确?我在哪里可以检查和更改 Windows 上的这些值(我已经看过了,但我没有系统变量 NODE_ENV) (7认同)
  • `npm install && npm install --only=dev` 谢谢! (7认同)
  • 另外,“only”选项已被弃用,您可以使用更适合您的“omit”或“include”。 (5认同)

Sha*_*ean 81

检查npm配置生产值是否设置为true.如果此值为true,则它将跳过dev依赖项.

npm config get production

设置它: npm config set -g production false


Nir*_*evy 33

确保你没有将env变量NODE_ENV设置为'production'.

如果这样做,则不会在没有--dev标志的情况下安装dev依赖项

  • 请注意,`npm install --dev`会安装devDependencies _recursively_.这几乎不是你想要的,事实上[已弃用](https://github.com/npm/npm/issues/6200). (12认同)
  • 不推荐使用`--dev`选项.请改用"--only = dev" (4认同)
  • npm WARN install 不推荐使用“--dev”选项。使用 `--also=dev` 代替。 (4认同)
  • `npm install --include dev` 可以解决@MaxCoplan (2认同)
  • `--include=dev` 对于某些人来说可能是一个有用的标志。 (2认同)

小智 15

我有一个package-lock.json来自旧版本的package.json 的文件,我删除了,然后一切安装正确.


Ami*_*imi 9

截至目前您可以使用:

npm i --also=dev
Run Code Online (Sandbox Code Playgroud)

  • npm WARN config 也请使用 --include=dev 代替。 (2认同)

obs*_*mer 7

我遇到了类似的问题. npm install --only=dev不起作用,也没有npm rebuild.最终,我不得不删除node_modules并再次package-lock.json运行npm install.这为我解决了这个问题.


Ale*_*Ale 6

可以将安装依赖项的简短方式仅用于开发,如下所示:

npm i -D <dependencies-names>
Run Code Online (Sandbox Code Playgroud)

  • 这根本不是OP所要求的 (4认同)

Pha*_* Ky 6

我有同样的问题,因为我NODE_ENV=production在构建 Docker 时设置了。然后我再添加一个npm install --only=dev。一切正常。我需要 devDependencies 来构建 TypeSciprt 模块

RUN npm install
RUN npm install --only=dev
Run Code Online (Sandbox Code Playgroud)


小智 6

所以我解决这个问题的方法是在我通常运行的命令中添加npm install或,然后在命令之后npm ci添加,所以我的整个命令结果是:NODE_ENV=buildNODE_ENV=production

RUN NODE_ENV=build && npm ci && NODE_ENV=production
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还没有出现任何不良反应,并且用于构建应用程序的开发依赖项都已正确工作/加载。

我发现这是一个比添加额外命令更好的解决方案,npm install --only=dev因为它花费的时间更少,并且使我能够使用该npm ci命令,该命令速度更快并且专门设计用于在 CI 工具/构建脚本内运行。(有关更多信息,请参阅npm-ci文档)


Ale*_*ray 5

确保您package.json的有效...

我有以下错误...

npm WARN Invalid name: "blah blah blah"

同样,导致devDependencies未安装。

仅供参考,将package.json“名称” 更改为blah-blah-blah固定的名称。