请教一下大家,前端项目,如果不同分支的代码依赖的 npm 包版本不一样,怎样方便地在切换分支后,让各分支使用各自相应的 npm 包?
难道每次切换分支后,都要重新安装一遍依赖吗?
1
kyuuseiryuu 2020-11-22 03:16:54 +08:00 via iPhone
你不会把 node_modules 加到版本控制了吧?
如果没有的话两个分支的依赖都装就好了。 除非有用到同一个包但不同版本,那就蛋疼了。 |
2
yyfearth 2020-11-22 03:28:15 +08:00
@kyuuseiryuu 现在前端 node_modules 加 git 里可不太好
太大了 webpack babel react/vue/angular 什么的 一大堆 可以上 G 而且每次 npm install 相当多文件会变化 除非你 npm install 一次之后再也不动 这当然已经不可能了 |
4
yyfearth 2020-11-22 03:30:06 +08:00
@kyuuseiryuu LZ 说的就是同样的包版本不一样 这个太常见了
|
5
luob 2020-11-22 03:59:38 +08:00
一个简单的方法:
新分支正常使用,给老分支全局替换一个 alias npm i my-package-1@npm:[email protected] - import MyPackage from "my-package" + import MyPackage from "my-package-1" |
6
kyuuseiryuu 2020-11-22 04:12:29 +08:00 via iPhone
@yyfearth 😂没注意到,我🦐了
|
7
seki 2020-11-22 05:01:10 +08:00
当然是每次再安装一遍了
如果想要做得自动化一点的话,可以用 husky 这样的加 git hooks,感觉 post-checkout 和 post-merge 应该就满足了 |
8
Rheinmetal 2020-11-22 07:37:01 +08:00
yarn2 的 plug and play 可以提交依赖 然而支持的包不是很多 也没有适配脚手架
|
9
shenyu1996 2020-11-22 09:02:37 +08:00 via Android
分俩文件夹 当成两个项目维护
|
10
yangtze 2020-11-22 09:06:17 +08:00 via iPhone 1
git worktree 了解一下,专门应对多分支同时开发的场景
|
11
crysislinux 2020-11-22 09:53:50 +08:00 via Android
有时候是会有这种情况,比如升级主体框架,但同时又在之前版本基础上修 bug 。切了就要 install 蛮不爽的,我选择直接 copy 一份单独开发。
|
12
fhsan 2020-11-22 10:09:40 +08:00
我选择 nvm use + zsh
|
14
1OF7G 2020-11-22 10:38:35 +08:00
如果分支比较固定的情况,可以使用 git worktree 。
|
15
lin07hui 2020-11-22 10:54:47 +08:00
@shenyu1996 +1
|
16
cwliang 2020-11-22 12:14:38 +08:00
yarn 重新装一遍,个别包版本不一样,也就两秒种的事
|
17
pkuphy OP @shenyu1996
> 分俩文件夹 当成两个项目维护 我之前就采用这样的方式,想着或许社区有更优雅的解决办法。 --- 切换分支后重新安装,有时候一些祖传 npm 包不小心升级后 API 发生变化,会带来很多让人头疼的麻烦。 |
19
KuroNekoFan 2020-11-22 21:17:13 +08:00
是的,重新安装一遍,反正很快
|
20
lifesimple 2021-07-21 16:03:43 +08:00
我也遇到这个问题,不过我觉得可以安装多个版本的同一个包 用别名区分
|