npm link介绍

220 阅读2分钟

功能

在开发npm包时,我们需要将npm包进行本地调试,如果这时不断的发布测试版本,然后再安装测试版本就会比价麻烦,测试我们就可以使用npm link 来创建一个软连接进行本地调试解决这个问题。

场景

比如我们现在在开发一个npm模块,名称为npm-package。然后在本地的app-demo这个应用中来使用这个模块。

创建链接

先进入npm-package项目根目录,然后执行npm link 命令

cd npm-package
npm link

在这里插入图片描述 我们一颗在控制台执行下面命令来查看所有全局链接的名称。

npm ls --global --depth 0 

在这里插入图片描述 可以看到,在全局中的npm-package已近和./../../../../../Documents/yjian/demo/npm/npm-package建立了链接了

项目使用

进入app-demo 项目中,执行npm link npm-package命令从全局下载这个包到node_module中。之后就可以正常使用/调试这个包的功能了。这里需要注意的是 npx link xxx, 这个xxx一定是npm包中package.json中的name字段而不是其他的 在这里插入图片描述

此时app-demo中的node_nodules是软链接过来的,如果我们修改npm-package里面的任何内容,都会同步到app-demo/node_modules中来的。这样我们调试起来就会非常的方便。

去除软连

进入app-demo

进入项目根目录中执行下面命令npm unlink xxx (xxx是npm包package.json文件中name字段的名称)

npm unlink npm-package

在这里插入图片描述 从npm的文档中可以看到,其实npm unlink 就是npm uninstall的别名。 在这里插入图片描述

删除全局链接

执行,sudo npm rm --global xx(xx是npm包名)来删除全局的软连接

sudo npm rm --global npm-package

在这里插入图片描述 本以为到这里就已近删除了,可是在app-demo中npm link npm-package还是可以安装成功,这就证明这个包还在。打开对应版本node安装包的lib/node_modules发现果然还在 在这里插入图片描述 这里有个小技巧,如果不知道node的安装目录,可以在终端使用where 查找另一个全局安全的命令。比如yarn

// 查找yarn在当前版本node中的完整安装路径
where yarn 

然后就可以找到当前node的安装路径,进而可以在lib/node_modules查看当前node中全局安装的包。 在这里插入图片描述

可以祭出终极一招。直接删除掉该文件夹即可

在这里插入图片描述

参考文档

npm文档