npm install won&#39

在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"
}
}
415061 次浏览

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

如果这样做,没有--dev标志就不会安装开发依赖项

检查NPM文档中的安装

使用--production标志(或者当NODE_ENV环境变量被设置为production时),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文件。

还没有吗?

好的,创建一个新文件夹,最好是在文件系统的其他地方。ie。不在同一个文件夹层次结构中。例如,C:\myNewFolder -越接近基本C:驱动器越好。

然后运行:

npm init --yes

现在运行:

npm install underscore --save

最后:

npm install mocha --save-dev

一切都像预期的那样工作吗?

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

检查npm config production value是否设置为true。如果这个值为true,它将跳过开发依赖项。

运行npm config get production

设置方法:npm config set -g production false

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

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

npm i -D <dependencies-names>

确保你的package.json是有效的…

我有以下错误…

npm WARN Invalid name: "blah blah blah"

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

供参考,将package.json“name”更改为blah-blah-blah修复了它。

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

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

RUN npm install
RUN npm install --only=dev

所以我解决这个问题的方法是在我通常运行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工具/构建脚本中运行。(有关它的更多信息,请参阅npm-ci文档)

在运行npm-check-updates -u后得到类似的错误。通过删除node_modules文件夹和package-lock.json解决了这个问题。在那之后,一个新的npm install和一切工作。

我的例外:

中声明的解析器“@typescript-eslint/parser”加载失败 的包。eslint-config-react-app#overrides[0]':无法找到 模块“@typescript-eslint /解析器”< / p >

在我的例子中,问题是我在运行npm install的同一终端会话中将NODE_ENV变量设置为生产。

为了让我的构建正常运行,我不允许改变NODE_ENV的值,所以我强制npm安装所有依赖项,方法是向它添加--production=false标志:npm install --production=false as 在文档中提到过

如果你不需要将NODE_ENV设置为production,你可以简单地在终端上键入export NODE_ENV=development来覆盖它的值并再次运行npm install

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

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

现在你可以使用:

npm i --also=dev