跨包代码如何调试?带你了解npm link和monorepo的适用场景

随着前端项目越来越大,我们往往会将一些逻辑、组件或资源从项目中抽离出来,形成单独的npm包。这样,这些内容就可以非常容易地在其他项目中进行复用。然而,当我们需要联调的时候,问题就变得复杂起来,我们需要让依赖包能够响应被依赖的包的变更。这时候,基于文件链接的npm link就极大地方便了我们调试。

文件链接

文件链接是类Unix操作系统中的概念,又分为软链和硬链。软链又被称为符号链接,其是一个单独的特定类型的文件,存储的内容只是一个路径的字符串,如./tsconfig.json/var/tmp这种,和Windows中的快捷方式非常类似。而硬链则是在文件目录中不同的索引节点指向相同的文件,也就是说,硬链和被链接的文件是完全等价的。

下面执行ls -il的截图可以很好地展示软链和硬链的原理上的区别:
在这里插入图片描述

在这个文件夹中,a.txt是原始文件,b.txt是a.txt的一个硬链,可以看到在ls的结果中两个文件除了文件名,其他信息,包括inode号(文件系统中的唯一序号,上图输出中的第一列)是完全一致的。而c.txt则是a.txt的一个硬链,其文件id与a.txt不同。更进一步,我们可以看到a.txt和b.txt的引用计数(输出中的第3列)是2&

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值