将一个模块从devDependencies移动到npm package.json中的dependencies

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

我发现自己总是这样做:

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

有没有更简单的方法?

95434 次浏览

是的!将一个模块从devDependencies移动到dependencies:

npm install <——save-prod < /代码> < / p >

devDependencies移动到dependencies (prod)的简写:

npm i <module_name> -P

如果你想做相反的事情(即将模块从dependencies移动到devDependencies),只需做:

npm install <module_name> --save-dev

或简写:

npm i <module_name> -D

如果你的项目还没有一个lockfile或shrinkwrap文件,你可以简单地移动package.json中相应的行。

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

纱:

将一个模块从devDependencies移动到dependencies:

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

将一个模块从dependencies移动到devDependencies:

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

正如评论中所说,该命令实际上删除了模块,并将其重新安装到新位置。

使用npmyarn命令的问题是,有可能重新添加的版本与当前使用的版本不一致。如果这是你想要的——这两个是一个移动和升级——那么继续使用被接受的答案。

如果不是,简单地手动编辑你的package.json将行从devDependencies对象移动到dependencies对象(如果需要创建它)。你也可以走另一个方向。

你可以在之后执行npm/yarn install来修复锁文件中的任何标志。

使用npm install的问题是你最终会得到更新的版本。对我有用的是:

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

这使得所有版本都保持完整。

我试图为使用Yarn的人找到这个问题的答案,但它还没有这个问题的命令。 虽然,我相信这不是必须的。< br > < br > 在物理上(在Node模块文件夹中),包中用于生产的依赖项和用于开发的依赖项之间没有区别。Json,它们会到相同的地方(node_modules)。< br > < br > 所以,如果你需要将依赖项从< >强devDependencies < / >强切换到< >强dependecies < / >强,你可以去你的包。json和手动移动,而不需要运行一个新的安装或删除依赖,然后使用<强> dev < / >强标志重新安装它 对我来说,管理包并不是很好。但是Yarn在所有功能上都不如NPM先进,因此这是一个需要考虑的问题

对于Yarn,我手动将它们移动到package.json中,然后运行yarn install。纱线锁文件没有得到更新,所以我认为这是好的。