在windows上,由于某些原因,当我运行npm install时,它不会安装devDependencies。我想应该是这样。如果我运行npm install——dev devDependencies被安装。我不明白为什么npm install不安装devDependencies,而只安装依赖项。原因是什么呢?我该怎么解决呢?

也许我的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"
  }
}

当前回答

确保你的包裹。Json有效…

我有以下错误…

无效的名称:"blah blah blah"

这同样会导致没有安装devDependencies。

供你参考,换包装。Json "name" to blah-blah-blah修复了它。

其他回答

现在你可以使用:

npm i --also=dev

确保你的包裹。Json有效…

我有以下错误…

无效的名称:"blah blah blah"

这同样会导致没有安装devDependencies。

供你参考,换包装。Json "name" to blah-blah-blah修复了它。

你可以使用简单的方式安装依赖只用于开发如下:

npm i -D <dependencies-names>

正如@Ale所说,我们现在可以使用npm i -D <some_module_name>或npm i——save-dev <some_module_name>。 似乎是在节点版本的某个点更改了命令。 官方(npm dependencies和devDependencies)表示如下。

当您添加-D标志或——save-dev时,您正在将其作为开发依赖项安装,这将其添加到devDependencies列表中。

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

RUN NODE_ENV=build && npm ci && NODE_ENV=production

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

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