【源码共读】16期 - preinstall钩子和only-allow

1 一句代码统一项目包管理器

这一句代码在Vite和Vue3源码的根目录package.json里,一定要到根目录去,不要学我,跑到packages的项目里面去找了半天。

Vite中的代码是这样的:

scripts:{
	"preinstall": "npx only-allow pnpm",
} 

Vue3 中的代码是这样的:

scripts :{
	"preinstall": "node ./scripts/preinstall.js",
} 

看着不一样,事实上这里两句代码的目的都是一样的,就是限制开发的时候,必须使用pnpm这个包管理。vue3vite都是采用monorepo风格管理代码的项目,使用pnpm更适合它们项目的情况。

2 是否有必要管?

包管理器其实有很多,npmyarn, cnpm ,还有刚才提到的 pnpm。大家都是将包下载到node_modules,但是却会产生不一样的文件和文件结构,比如 npm 会产生 package-lock.json 而 yarn 则会产生 yarn.lock,如果团队中的同事因为开发习惯的不同,由于执行 install的时间不同,可能会导致不同人使用的依赖版本完全不一样。

不同的包管理器对依赖的处理算法也不一样,比如npmpnpm,它们在处理依赖时会得出完全不一样的node_moudles结构。

这显然会让团队的代码管理变得困难,同时如果像**lock这样的文件也纳入代码管理的话,也有可能让代码中多出很多由其它包管器产生的对部分人有用文件。

3 preinstall

我觉得首先要搞清楚这个东西是什么,它是npm提供的一系列生命周期钩子,以使得用户可以在一定时期,执行一些其它指令。我找到了npm, yarn,以及pnpm 中介绍这些钩子的文

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值