是否有任何短命令可以将 package.json 中的模块从 devDependencies
移动到 dependencies
?
我发现自己总是这样做:
npm uninstall <module_name> --save-dev
npm install <module_name> --save
有没有更短的方法呢?
package-lock.json
中维护相同的版本,并且只是将依赖项标记为开发依赖项,那么此答案中提到的方法应该是可行的方法:stackoverflow.com/a/57032462/3575560
从 devDependencies
移动到 dependencies
的速记(prod):
npm i <module_name> -P
如果您想做相反的事情(即将模块从 dependencies
移动到 devDependencies
),只需执行以下操作:
npm install <module_name> --save-dev
或速记:
npm i <module_name> -D
是的!将模块从 devDependencies
移动到 dependencies
:
npm install <module_name> --save-prod
在纱线中:
将模块从 devDependencies
移动到 dependencies
:
yarn remove <module_name> --dev && yarn add <module_name>
将模块从 dependencies
移动到 devDependencies
:
yarn remove <module_name> && yarn add <module_name> --dev
正如评论中所说,该命令实际上删除了模块并将其重新安装到新位置。
dependencies
移动到 devDependencies
?
&&
与 &
混淆。
使用 npm
或 yarn
命令的问题在于,重新添加的版本可能与当前使用的版本不同。如果这是您的想要 - both 移动和升级 - 然后继续使用已接受的答案。
如果没有,只需手动编辑您的 package.json
以将行从 devDependencies
对象移动到 dependencies
对象(如有必要,创建它)。你也可以去另一个方向。
锁定文件不包含任何关于事物是 prod 还是 dev 依赖项的信息,因此不需要更新。 之后您可以执行 npm
/yarn install
来修复锁定文件中的任何标志。
package-lock.json
中只有一个 dependencies
顶级部分,但每个条目可能都有一个 dev
标志,以指示它是开发依赖项还是一个的传递依赖项。请参阅docs.npmjs.com/files/package-lock.json#dev“如果 [dev 为] true,则此依赖项要么是仅顶层模块的开发依赖项,要么是一个传递依赖项。对于既是顶层开发依赖项又是传递依赖项的依赖项,这是错误的顶层的非开发依赖的依赖。”
使用 npm install 的问题是你最终得到了更新的版本。对我有用的是:
将它们移动到预期的部分(开发或产品) 从 node_modules 文件夹中删除它们 执行 npm install
这使所有版本保持不变。
如果您的项目还没有 lockfile 或 shrinkwrap 文件,您只需移动 package.json
中的相应行即可。
(我不建议不使用锁定文件)
我试图为使用 Yarn 的人找到这个问题的答案,但它还没有关于这个问题的命令。虽然,我相信它无论如何都不是必需的。物理上(在 Node 模块文件夹中)列出的生产依赖项和 package.json 中列出的开发依赖项之间没有区别,它们将位于同一个位置(node_modules)。因此,如果您需要将依赖项从 devDependencies 切换到依赖项,您可以转到 package.json 并手动移动,而无需运行新的安装或删除依赖项,然后使用 dev 标志再次安装它。对我来说,手动管理 package.json 并没有那么好,但是 Yarn 在所有功能上都没有 NPM 先进,因此这是需要考虑的事情。
不定期副业成功案例分享
npm i module-example -D
也适用于从 prod 转移到 dev,以及npm i module-example -P
从 dev 转移到 prod 依赖项yarn remove <module_name>
从依赖项中删除它,然后使用yarn add <module_name> --dev
将其重新添加到 devDependenciespackage.json
中将依赖项从dependencies
移动到devDependencies
会怎样?锁定文件似乎没有存储有关开发或生产的任何信息