npm install不会安装devDependencies

时间:2016-01-10 00:26:36

标签: node.js npm

在我运行npm install --dev时由于某种原因在Windows上,它不会安装devDependencies。它应该是AFAIK。如果我运行npm install,则安装devDependencies。我不明白为什么{ "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" } } 也没有安装devDependencies,而只安装依赖项。可能是什么原因?我该如何解决? 也许smth是我的package.json错了?如果它可能有帮助,它列在下面

{{1}}

10 个答案:

答案 0 :(得分:251)

查看NPM文档install

  

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

     

--only={prod[uction]|dev[elopment]}参数将导致只安装devDependencies或者只安装非devDependencies,无论NODE_ENV如何。“

你试过吗

npm install --only=dev

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

npm init --yes

然后:

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

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

检查你的npm配置:

npm config list

npm从命令行,环境变量和npmrc文件中获取其配置设置。因此,请检查环境变量和npmrc文件。

仍然失败?

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

然后运行:

npm init --yes

现在运行:

npm install underscore --save

最后:

npm install mocha --save-dev

一切都按预期工作吗?

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

答案 1 :(得分:74)

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

运行npm config get production

设置它:npm config set -g production false

答案 2 :(得分:27)

确保您没有将env变量NODE_ENV设置为'production'。

如果这样做,将在没有--dev标志

的情况下安装dev依赖项

答案 3 :(得分:14)

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

答案 4 :(得分:7)

我有类似的问题。 npm install --only=dev没有工作,npm rebuild也没有。最后,我必须删除node_modulespackage-lock.json并再次运行npm install。这为我解决了。

答案 5 :(得分:4)

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

我遇到以下错误......

npm WARN Invalid name: "blah blah blah"

同样地,导致devDependencies无法安装。

仅供参考,更改package.json"名称"到blah-blah-blah修复它。

答案 6 :(得分:2)

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

RUN npm install
RUN npm install --only=dev

答案 7 :(得分:1)

您可以使用以下简短的安装依赖关系进行开发:

npm i -D <dependencies-names>

答案 8 :(得分:1)

因此,我要解决此问题的方法是在我通常运行npm installnpm ci的命令中,先添加NODE_ENV=build,然后再添加NODE_ENV=production,所以我的整个命令出来了:

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

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

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

答案 9 :(得分:0)

运行npm-check-updates -u后出现类似的错误。通过删除node_modules文件夹和package-lock.json解决了该问题。之后,有了一个新的npm install,一切正常。

我的例外:

无法加载在中声明的解析器'@ typescript-eslint / parser' 'package.json»eslint-config-react-app#overrides [0]':找不到 模块'@ typescript-eslint / parser'

相关问题