在 package.json 中相同依赖项的 2 个版本之间切换的好方法?
Posted
技术标签:
【中文标题】在 package.json 中相同依赖项的 2 个版本之间切换的好方法?【英文标题】:Good way to switch between 2 versions of the same dependency in package.json? 【发布时间】:2021-08-31 17:22:03 【问题描述】:事实证明你不能在 JSON 文件中包含 cmets,让人们参考一些文档告诉他们要复制/粘贴哪一行以及在哪里实现这一点有点尴尬。
我想我可以制作一个 python 脚本来复制/粘贴两个 package.json 文件之一,具体取决于它们传入的标志,但这感觉过于复杂。
我认为我可以包含两个依赖项(使用不同的名称),但这会要求两者都可用,这也不好。
寻找实现这一目标的好方法的想法/想法。我有相同依赖项的发布和开发版本,我经常需要在两者之间交换。想要改进工作流程,而不仅仅是在侧面粘贴两行的记事本......
【问题讨论】:
您可以使用不同的 package.json 文件创建两个 git 分支。 git checkout branch-name-package1 package.json 【参考方案1】:yarn
和 npm
已经完成了这项工作,为什么不使用它们呢?
发布
Tag 发布时的开发版本
yarn publish --tag dev dep
npm publish --tag dev dep
然后在安装时引用标签yarn install dep@dev
。
本地
对于本地依赖,npm
和 yarn
提供“链接”命令。
在你的依赖目录中运行yarn link
在你的项目目录中运行yarn link dep
您可以将命令记录为易于运行或查看的脚本。
"scripts" :
"dep:local": "yarn link dep",
"dep:dev": "yarn install dep@dev",
"dep:latest": "yarn install dep@latest"
【讨论】:
开发版本并不总是发布,我有时也在使用本地相对路径。这在某些情况下会起作用,谢谢你,但是在"mypkg": "../../sources/mypkg"
和已发布版本之间切换呢?
npm
/yarn link
会做本地以上是关于在 package.json 中相同依赖项的 2 个版本之间切换的好方法?的主要内容,如果未能解决你的问题,请参考以下文章
在 package.json 和 package-lock.json 中更新版本号而不更新依赖
npm install:有没有办法忽略 package.json 中的特定依赖项
使用 package-lock.json 更新中间 npm 依赖项
有没有办法为 package.json 中的相同依赖项指定不同的路径?