前端应该掌握的软链接与硬链接知识

Posted 全栈修仙之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端应该掌握的软链接与硬链接知识相关的知识,希望对你有一定的参考价值。

yarn link:

  • 在仓库B中运行yarn link
  • 在仓库A中运行yarn link [package...]
  • 通过以上命令我们可以实现仓库B中的修改可以同步到仓库A中。

    yarn link源码地址:https://github.com/yarnpkg/yarn/blob/3119382885ea373d3c13d6a846de743eca8c914b/src/cli/commands/link.js

    pnpm

    使用方式

    当我们运行pnpm install进行node_modules安装的时候,会使用软链接 & 硬链接的方式来节省磁盘空间 & 提升安装效率。

    软链接使用

    通过执行pnpm install,安装的node_modules中文件会被分为两部分:.pnpm目录 & 其他。

  • .pnpm目录:存放了所有实际安装的包
  • 其他文件:package.json中声明的包,但是只是生成一个软链接。实际指向.pnpm中安装的包。
  • 硬链接使用

    pnpm 有个根目录,一般都是保存在 user/.pnpm-store 下,pnpm 通过硬链接的方式保证了相同的包不会被重复下载,比如说我们已经在 repoA 中下载过一次 express@4.17.1 版本,那我们后续在 repoB 中安装 express@4.17.1 的时候是会被复用的,具体就是 repoA 中的 express 中的文件和 repoB 中的 express 中的文件指向的是同一个 inode。

    参考文档
  • 纠结的链接——[1]ln[2]、ln -s、fs.symlink、require[3]
  • 【工程化】现代前端工程化- 傻傻分不清楚的链接 fs.symlink、 [4]ln[5]、ln -s(详解与应用)[6]
  • linux之软连接和硬连接的区别[7]
  • 一口气搞懂「文件系统」,就靠这 25 张图了[8]
  • 浅谈 [9]pnpm[10] 软链接和硬链接[11]
  • 实践:[12]pnpm[13] 解决了我的哪些痛点?[14]
  • 参考资料
    [1]

    纠结的链接——: https://kohpoll.github.io/blog/2016/05/30/hardlink-symlink-require-in-nodejs/


    [2]

    ln、ln -s、fs.symlink、require: https://kohpoll.github.io/blog/2016/05/30/hardlink-symlink-require-in-nodejs/

    [3]

    【工程化】现代前端工程化- 傻傻分不清楚的链接 fs.symlink、 : https://jishuin.proginn.com/p/763bfbd5a424


    [4]

    ln、ln -s(详解与应用): https://jishuin.proginn.com/p/763bfbd5a424

    [5]

    linux之软连接和硬连接的区别: https://segmentfault.com/a/1190000040740418

    [6]

    一口气搞懂「文件系统」,就靠这 25 张图了: https://www.cnblogs.com/xiaolincoding/p/13499209.html

    [7]

    浅谈 : https://zhuanlan.zhihu.com/p/442133074

    [8]

    pnpm: https://zhuanlan.zhihu.com/p/442133074

    [9]

     软链接和硬链接: https://zhuanlan.zhihu.com/p/442133074

    [10]

    实践:: https://juejin.cn/post/7036319707590295565

    [11]

    pnpm: https://juejin.cn/post/7036319707590295565

    [12]

     解决了我的哪些痛点?: https://juejin.cn/post/7036319707590295565

    Linux中的软链接与硬链接

    软链接相当于windows的快捷方式,当源文件不存在时,软链接失效。

     

    链接是指向文件名,当指向的文件名字删除的时候,就找不到源文件了。硬链接是指向文件本身,删除一个文件名字,还是可以找到源文件的。ls -l的结果的第二列数字就是指向文件本身的个数,也就是硬链接个数。

    以上是关于前端应该掌握的软链接与硬链接知识的主要内容,如果未能解决你的问题,请参考以下文章

    Linux中的软链接与硬链接

    Linux的软链接与硬链接

    Linux系统的软链接与硬链接有什么区别?

    linux系统下的软连接与硬链接

    linux/mac系统的软链接文件与硬链接文件

    软链接与硬链接的区别