前言
写这篇文章的原因最近在做一些工程化相关的内容,有使用到 fs.symlink(target,path), 查看 Node.js 文档发现讲的一般!所以这里详细整理下,并且记得之前在 Linux 下直接使用命令创建软链,通过 ls -s source_file target_file 在想这两个参数位置有些怎么不一致呢?本文是我上一篇工程化系列文章中的一个小插曲,上篇文章 现代前端工程化-彻底搞懂基于 Monorepo 的 lerna 模块(从原理到实战) 有提到软链接,那篇没有对软硬链接没有进行详细讲解,只是简单介绍了 fs.symlink 中软链接创建的基本使用,本文进行详细展开下。
链接
链接简单说实际上是一种文件共享的方式,是 POSIX 中的概念,主流文件系统都支持链接文件。
硬链接
与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块。
软链接
保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。
软连接的创建应用场景还是比较广泛,比如 npm link 调试, leran 内部模块互相引用等等。