前言

我们在本地开发一个包的时候,想要测试使用这个包的效果,一般情况下需要先将该包发布到 npm,再从 npm 下载下来测试。这样测试当然是最准确的,但是这样需要频繁增删包,会很麻烦。因为可以使用 npm link功能将本地的包 link 到引用的工程的 node_modules 中使用。

不同的 npm 的版本命令会有些差异,以下用法仅适用于 npm v8 版本。

全局 link

如果开发的包和使用开发包的工程相隔很远,或者不想写相对路径和绝对路径等路径信息,就可以将开发的包 link 到全局,使用开发包的工程从全局 link 过来。

  1. 开发包 link 到全局 ```bash cd toLinkDir

npm link

  1. 2. 查看是否 link 到全局成功
  2. ```bash
  3. npm ls --global
  1. 工程使用开发包 ```bash cd projectDir

这里的 @xx/test 是link到全局的package.json里的name,而不是文件夹名

npm link @xx/test

  1. 4. 工程查看是否 link 成功
  2. ```bash
  3. cd projectDir
  4. npm ls
  1. 工程移除开发包 ```bash cd projectDir

npm unlink @xx/test

  1. 6. 将开发包从全局 link 移除
  2. ```bash
  3. npm unlink -g @xx/test

局部 link

可以直接在使用的工程目录下直接 link 相对路径或者绝对路径的开发包,如下

  1. cd projectDir
  2. npm link ../../test/pkg
  3. npm ls
  4. npm unlink @xx/test
  5. # 上述步骤等同于进入开发包中执行 link 到全局,再到工程目录下使用 link
  6. # 虽然是局部,但是 link 的包也被放到了全局,需要在用完后手动移除
  7. # 全局命令依旧可以看到 link 的包
  8. npm ls -g
  9. npm unlink -g @xx/test