将模块从devDependencies移至npm package.json中的依赖项


154

在package.json中是否有任何简短命令将模块从devDependencies移至dependencies

我发现自己一直在这样做:

npm uninstall <module_name> --save-dev 
npm install <module_name> --save

有没有更短的方法呢?

Answers:



181

如果要执行相反的操作(即,将模块从dependencies移至devDependencies),请执行以下操作:

npm install <module_name> --save-dev

或速记:

npm i <module_name> -D

devDependencies转到dependencies(prod)的简写:

npm i <module_name> -P

5
为我工作,v5.6
传奇,

1
速记npm i module-example -D也将工作,从生产过渡到开发,以及npm i module-example -P从开发依赖转为生产依赖
Andriy

@Andriy谢谢,没想过。将更新答案!
Sid

如果您使用的是yarn,则需要先将其从依赖项中删除yarn remove <module_name>,然后使用yarn add <module_name> --dev
Eugenio,

16

在纱线中:

将模块从devDependencies移至dependencies

yarn remove <module_name> --dev && yarn add <module_name> 

将模块从dependencies移至devDependencies

yarn remove <module_name> && yarn add <module_name> --dev

如注释中所述,该命令实际上删除了该模块,然后将其重新安装在新位置。


1
这是真的吗 纱线中是否有办法在不除去和重新添加的情况下将物料从移动dependenciesdevDependencies
LondonRob

@LondonRob是我找到的唯一方法
yohaiz

21
这不会动,这只是删除软件包并重新安装
Thanveer Shah

@seeker_of_bacon这里没有任何内容在后台运行。你可能会混淆&&&
rudolfbyker

3

如果您的项目还没有锁定文件或收缩包装文件,则只需在中移动相应的行即可package.json

(我不建议您不使用锁文件)


3

使用npmyarn命令的问题是,重新添加的版本可能与当前使用的版本不同。如果这是您想要的- 既是升级又是升级-然后继续并使用公认的答案。

如果没有,只需手动编辑package.json将线从devDependencies对象移动到dependencies对象(必要时创建)。您也可以朝另一个方向前进。

锁定文件不包含有关事物是prod还是dev依赖项的任何信息,因此不需要更新。之后,您可以执行npm/ yarn install修复锁定文件中的所有标志。


虽然中只有一个dependencies顶级部分package-lock.json,但每个条目都可能带有一个dev标志,以指示它是dev依赖还是传递依赖。请参阅docs.npmjs.com/files/package-lock.json#dev “如果[dev为] true,则此依赖关系仅是顶层模块的开发依赖关系,或者是一个传递性依赖关系。对于那些既是顶层的开发依赖关系,又是顶层的非开发依赖关系的传递依赖。”
rob3c

0

使用npm install的问题是您最终获得了更新版本。对我有用的是:

  1. 将它们移动到预期的部分(开发或生产)
  2. node_modules中删除它们文件夹中
  3. 执行 npm install

这样可以保持所有版本的完整性。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.