如何使用Yarn在本地包变更时自动全局更新?
自动更新全局安装的本地Yarn包的方法
嗨,我明白你现在的困扰——每次改完本地包代码都要重新跑一遍yarn global add "file:$PWD",确实挺繁琐的。这里有几个实用的方法能帮你实现自动更新,不用再手动重复操作:
方法1:使用Yarn官方的link命令(最推荐)
这是Yarn专门为本地包开发测试设计的功能,本质是创建软链接,让全局使用的包直接指向你的本地开发目录:
- 第一步:在你的本地包根目录执行
yarn link,这会把你的包注册到Yarn的全局链接池里 - 第二步:之后你直接使用包的命令名(比如你的包叫
my-cli-tool,就直接敲my-cli-tool),所有对本地包代码的修改都会实时同步到全局使用的版本里 - 收尾:如果之后你不想再用本地版本,只要在本地包目录执行
yarn unlink,或者在任意目录执行yarn unlink my-cli-tool就能取消链接
方法2:用nodemon监听文件变化自动重装
如果你更习惯保持file:$PWD的安装方式,可以借助nodemon工具监听文件变更,自动触发全局安装命令:
- 先全局安装nodemon:
yarn global add nodemon - 然后在本地包根目录运行这条命令:
这样只要你修改并保存本地包的任意文件,nodemon就会自动重新执行全局安装命令,帮你更新包的全局版本nodemon --watch . --exec 'yarn global add "file:$PWD"'
方法3:手动创建软链接(适合熟悉文件系统的用户)
直接绕开Yarn的包管理,手动给全局包目录创建指向本地包的软链接:
- 先找到Yarn全局包的安装目录:执行
yarn global dir,输出的路径一般类似~/.config/yarn/global/node_modules - 删掉之前用
yarn global add安装的你的包文件夹 - 创建软链接:把你的本地包目录链接到全局node_modules里,命令格式如下:
之后修改本地包代码,全局使用的就是最新内容了,因为软链接直接指向你的本地文件ln -s /绝对路径/到你的本地包目录 ~/.config/yarn/global/node_modules/你的包名
内容的提问来源于stack exchange,提问作者user21039427
相关产品推荐
相关产品推荐

