如何使用 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 install
和 npm install --dev
都用于从 both 安装 dependencies
和 devDependencies
文件夹!
我遇到了同样的问题@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
或通过选项-P
或npm install package_name
要安装 dependencies 或 Prod dependencies 下的所有包,
设置环境变量NODE_ENV=production
或使用命令NODE_ENV=production npm install
或npm 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 的整个源代码解决方案?