如何使用 npm 仅安装“devDependencies”

Posted

技术标签:

【中文标题】如何使用 npm 仅安装“devDependencies”【英文标题】:How to install only "devDependencies" using npm 【发布时间】:2016-08-28 05:20:59 【问题描述】:

我正在尝试仅安装我的 package.json 文件中列出的“devDependencies”。但是以下命令都没有按我的预期工作。以下所有命令也会安装我不想要的生产依赖项。

npm install --dev
npm install --only=dev
npm install --only-dev

我想不出更多的方法来告诉 npm 单独安装 devDependencies。 :(

【问题讨论】:

今天 - npm WARN install 不推荐使用--dev 选项。请改用--only=dev 最新版本的 NPM (v7) 支持--production=false 而不是上面的。 --production=false 没有解决 OP 问题:它安装依赖项和 devDependencies,而不仅仅是 devDependencies。 【参考方案1】:

查看NPM docs for install:

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

--only=prod[uction]|dev[elopment] 参数将导致仅安装 devDependencies 或仅安装非 devDependencies,而不管 NODE_ENV。

您是否尝试过以下方法?

npm install --only=dev

【讨论】:

刚才我发现我的 npm 版本是 2.x 。我通过运行命令 npm install npm -g 将它升级到 v3.x,并且 --only=dev 选项就像一个魅力。感谢您的回复。 @NesanJoseph 提到的版本问题也是我的问题。在旧版本的 npm 中,npm install --prod 用于安装 dependencies 文件夹中的项目。 npm installnpm install --dev 都用于从 both 安装 dependenciesdevDependencies 文件夹! 我遇到了同样的问题@ricka 提到使用 nvm 运行 node v 10.9.0 和 npm v 6.4.1(都是 10/18 的最新版本)并且还使用 --only= dev 仍在安装应用程序依赖项。基本上 npm install 标志在这一点上是 100% 无用的。 不适合我(节点 v12.19.0,npm v6.14.8)。也许它与自 2016 年 4 月以来开放的这个问题有关:github.com/npm/npm/issues/12184【参考方案2】:
npm install thePackageName --save-dev

这对我来说很好。

【讨论】:

--save-dev 将包保存到 package.json 中的 devDependencies --save-dev 表示已安装的包将安装在 devDependencies 下 更像npm install thePackageName --save-dev 这将安装单个包显式名称并将其保存到开发依赖项。问题是关于如何仅从 package.json 安装 devDependencies。 不符合问题的标准。您的答案是安装:1. 单个包 2. 问题询问如何安装已经在 package.json 但仅在依赖项列表中的东西。【参考方案3】:
npm i -D

可选的短版本。

【讨论】:

是的,我已经完成了npm install -D 并且成功了。所以我很惊讶并用谷歌搜索了这个,经过多次回答后我看到了你的答案:)【参考方案4】:

运行npm install,它将安装devDependencies`或dependencies下的所有依赖项。

用于在 package.json 中安装和保存包作为开发依赖项, npm install package_name --save-dev 或通过选项-D

为了安装 devDependencies 下的所有包, npm install --only=dev

用于在 package.json 中将包安装和保存为 prod 或仅依赖项, npm install package_name --save-prod 或通过选项-Pnpm install package_name

要安装 dependenciesProd dependencies 下的所有包, 设置环境变量NODE_ENV=production 或使用命令NODE_ENV=production npm installnpm install --only=prod 传递它

除了在 npm 命令中使用 install 之外,您还可以像 npm install 那样使用 i,比如 npm i,而不是安装。

Reference

【讨论】:

这不能回答 OP 问题:“仅安装我的 package.json 文件中列出的“devDependencies””【参考方案5】:

不再支持 --only=dev 选项。做开发依赖安装运行npm install --production=false

【讨论】:

正确:--onyl=dev 已被删除。错误:--production=false 不能替代最初的问题:仅安装 devDependencies(= 不安装依赖项)【参考方案6】:

从 npm 版本 7.10.0 开始,您可以省略某些类型的依赖项,但是您不能再省略“the”依赖项(生产)。这就是为什么这个问题不再有解决方案了。

【讨论】:

我想知道为什么那条线是任意画的。依赖项很庞大,而且现在在容器中运行的东西,通常不需要为开发安装所有依赖项。

以上是关于如何使用 npm 仅安装“devDependencies”的主要内容,如果未能解决你的问题,请参考以下文章

如何仅安装 angular-ui-router.js 文件而不是 npm 的整个源代码解决方案?

NPM 仅安装后依赖项

npm install -g/-d/-s 的区别

Node 常用

vue项目环境搭建(webpack4从零搭建)--仅个人记录

Cordova: 仅使用HTML/JS即可制作一个Android或者iOS的App