名词解释:
软链:用点类似于windows的超链接,当源文件软链一个A文件时,源文件删除后,A文件也就被删除了。
使用场景:
A项目需要用到B项目的组件,可能我们需要发布B项目,然后作为一个模块进行安装与引入,但如果此时B项目的这个组件更改了n次,那么我们是不是需要重新发布n次,在调试过程中,这是十分难受与废人心血的。此时npm link命令就充分发挥了其优势。
如何使用:
公共项目B:使用npm link,会把这个项目转化成一个包,并且存放在全局的node_modules,形成一次软链。同时在此项目npm unlink,将会使项目与全局的软链失效。
与B并行且依赖于B的项目A:使用npm link B(注意,此时的这个"B",是依据其项目中的package.json中的name属性而定),然后就会在A项目中的node_modules安装B包 同时其中的B包会软链至全局,再软链至B项目(相当于两次软链),就实现轻松本地调试了。同时在项目中npm unlink B,将会使此项目中的依赖B与全局的软链失效。
举例实验:
拿 公共模块test、项目common 为例(项目名取反了):
test执行npm link,完成一次软链
common执行npm link test,完成两次软链
Test项目index.js:
此时我们在common项目中 导入test包暴露出来的对象 可以看到能打印出来
Common项目index.js:
当然我们也可以通过在common项目中 npm unlink test来实现项目与模块的链接取消
也可以在test项目中npm unlink 来实现项目与全局的链接取消
希望各位能对于npm link有个大概的理解~