如何使用npm只安装"devDependencies"

Nes*_*eph 70 node.js npm package.json npm-install

我试图只安装我的package.json文件中列出的"devDependencies".但是以下命令都没有像我预期的那样工作.以下所有命令也安装了我不想要的生产依赖项.

npm install --dev
npm install --only=dev
npm install --only-dev
Run Code Online (Sandbox Code Playgroud)

我想不出任何告诉npm单独安装devDependencies的方法.:(

Ahm*_*afa 111

检查NPM文档以进行安装

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

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

你有没有尝试过

npm install --only=dev
Run Code Online (Sandbox Code Playgroud)

  • 值得注意的是 `--only=dev` 已被弃用并且将不再起作用。我不相信目前有一种方法可以只安装开发依赖项。 (21认同)
  • 刚才我发现我的npm版本是2.x. 我通过运行命令`npm install npm -g`将其升级到v3.x并且** - only = dev**选项就像魅力一样.谢谢你的回复. (9认同)
  • 不适合我(节点 v12.19.0,npm v6.14.8)。也许这与2016年4月以来开放的这个问题有关:https://github.com/npm/npm/issues/12184 (2认同)
  • @MichaelMurphy 投票给他!npm 8之后,没有办法只安装devDependency (2认同)

小智 31

npm i -D
Run Code Online (Sandbox Code Playgroud)

可选的简短版本。

  • 是的,我已经完成了“npm install -D”并且它起作用了。所以我很惊讶并用谷歌搜索了这个,经过很多回答后我看到了你的答案:) (7认同)

Mic*_*l K 21

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

  • 我想知道为什么这条线是任意划定的。依赖项非常庞大,而且现在在容器中运行的东西,通常不需要安装所有依赖项来进行开发。 (5认同)

小智 18

npm install thePackageName --save-dev
Run Code Online (Sandbox Code Playgroud)

这对我来说很好.

  • `--save-dev` 将包保存到 package.json 中的 devDependencies (4认同)
  • 更像是`npm install thePackageName --save-dev` (3认同)
  • 这将安装一个软件包的显式名称,并将其保存到dev依赖项中。问题是关于如何仅从package.json安装devDependencies。 (3认同)
  • 不符合问题的标准。您的答案是安装: 1. 单个包 2. 问题询问如何安装 package.json 中已有但仅在依赖项列表中的内容。 (3认同)
  • --save-dev 旨在标记已安装的软件包将安装在 devDependency 下 (2认同)

小智 10

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

  • 正确:--onyl=dev 已被删除。错误: --product=false 不能替代最初的问题:仅安装 devDependencies (= 不安装依赖项) (7认同)
  • `npm install --product=false` 将安装所有依赖项,包括正常依赖项和开发依赖项,因为这是您在不生产时(当您在开发中时)想要的。 (2认同)

MIT*_*WAL 5

在最新版本的 npm 中,无法仅安装开发依赖项。但您可以采取一种解决方法。

您可以创建另一个 package_dev.json 文件,在其中只能放置 devDependencies 并将依赖项保留为空。

除了安装开发依赖项之外,您还可以执行以下脚本

cp package.json temp.json && \
cp package_dev.json package.json && \
npm install && \
rm -rf package.json && \
cp temp.json package.json && \
rm -rf temp.json
Run Code Online (Sandbox Code Playgroud)

我有类似的要求,我需要创建 gitHub 操作并且只想安装开发依赖项。上述解决方法对我来说很有魅力。

该方法的唯一缺点是,每次 package.json 文件中有更新时,您都需要更新 package_dev.json。