在我运行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}}
答案 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
标志
答案 3 :(得分:14)
我的package.json的旧版本中有一个package-lock.json
文件,我删除了该文件然后安装正确。
答案 4 :(得分:7)
我有类似的问题。 npm install --only=dev
没有工作,npm rebuild
也没有。最后,我必须删除node_modules
和package-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 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工具/构建脚本中。 (有关更多信息,请参见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'