npm包的工程化之npm link本地包的调试

挽枫 1823 2022-03-26

前言

在项目开发过程中,大家可能会存在一种fork开源库为自己公司的产品做定制化二次开发的需求,那么这个时候怎么让自己本地产品的项目代码与第三方开源库进行本地联调呢?

npm包的本地调试

单包联调

“单包联调”故名思义就是只有一个包需要调试的,不需要配合其他包调试的。直接npm link,在需要的目录下直接npm install package_name就好了。

多包协同联调

有的时候呢,为了代码的可维护性,对要实现的功能进行了分包处理,那么在对多个包进行调试的时候就需要手动指定包的路径就好了

npm link——生成一个符号连接

在第三方库的包目录下执行如下命令,该命令将在全局文件 {prefix}/lib/node_modules/ 内,创建一个符号链接(symlink),这个链接指向 npm link 命令执行的地方。

cd package-name-project
npm link 

在产品的工程目录下执行如下命令,将创建一个从全局安装的package-name到当前文件夹的节点_modules/的符号链接,作用是让当前产品的package-name这个包使用的是指向是本地开发的第三方库的包,当你尝试的更改本地的package-name这个包时,你的的产品项目将会热重启(如果你的产品工程代码配置了文件变化重新编译的话)

cd product-dir
npm link package-name

如果你不想在项目里用本地开发的这个包,则需要去掉这个符号连接,你可以在产品的工程目录下运行如下代码

npm unlink --no-save package-name && npm install  package-name

执行完上面的命令之后,建议最好执行一遍如下命令:

npm ls -g 

该命令的作用查看全局有哪些安装包,如果你执行完命令之后发现自己调试的包还在里面,就可以尝试着再次执行如下命令:

npm uninstall -g package_name