Yarn link 链接本地项目


Yarn link 链接本地项目

场景

作为 JavaScript SDK 的开发者一定都知道,想要在未发布前进行测试整个包可谓是困难重重。而 yarn link 这个命令便是为了解决这个需求而产生的,它能让包引用并测试自身,即便包并未发布或不包含在 package.json 中亦然。

操作

官网链接

链接包

在命令行运行即可将当前包链接安装到这个包中,即便你在 package.json 并不会找到显式的依赖。

yarn link && yarn link ""

注:如果当前包是 cli,即 package.json 中包含 bin 字段,则还会被链接到 yarn 的全局脚本目录中。
yarn 的全局脚本目录可以通过执行 yarn global bin 进行查看,如果要在全局执行,则需要将该目录设置到环境变量 Path 中,然后就可以全局运行命令了。

然后,便可以在项目中使用了(测试)

import  from 'pkgName'

取消链接

如果不需要了,则也可以轻易通过 unlink 移除。

yarn unlink "" && yarn unlink

注:同样的,如果当前包是 cli,则 yarn 全局 bin 目录中也会进行删除

通用 script

每个项目都这样太麻烦了,可否添加一个通用 script 脚本呢?

当然是可以的,通过 %npm_package_name% 我们便能在 srcipt 中访问到项目名

"scripts": {
  "link:add": "yarn link && yarn link %npm_package_name%",
  "link:remove": "yarn unlink %npm_package_name% && yarn unlink"
},

参考:https://docs.npmjs.com/misc/scripts#packagejson-vars

以后便可以直接将命令复制到 script 即可直接使用了。

注:使用 %% 包裹便能在 script 中使用,该方式在 Windows 下生效,Linux 下似乎需要添加前缀 $,不过吾辈并未测试(懒得折腾 Linux 桌面了)。
然而,问题并非不存在了,例如本地使用 Windows 构建,然而远程 CI 使用 Linux,那这个脚本就要炸了。。。所以,如果你需要上 CI 的话,还是老实改名字吧。
或者也可以使用 VSCode + WSL?#笑


文章作者: rxliuli
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 rxliuli !
 上一篇
读书-人类简史 读书-人类简史
序断断续续,最近终于读完了人类简史。它是一个系列的书籍,一共三本「人类简史」,「未来简史」和「今日简史」,当然,系列的第一本「人类简史」是最出名的,吾辈也正是有所耳闻才去通读了该系列。 言书里太多内容,读过之后却又没有记忆下来。然而,吾辈
2019-12-01 rxliuli
下一篇 
为什么吾辈不对百度做 SEO 优化 为什么吾辈不对百度做 SEO 优化
为什么吾辈不对百度做 SEO 优化闲言碎语任何事情都要有目标,而吾辈个人觉得,任何一位开发者,如果还只会用百度的话,那么终究有所不足。或许有人说这是崇洋媚外?然而事实上百度不仅在搜索质量上远不如 Google,而且还发生过多次不好的事件。正
2019-10-26 rxliuli
  目录