如何在本地调试npm包

509 阅读2分钟

要调试本地的npm包,首先要为你的包创建一个符号链接

要为本地的 npm 包创建一个符号链接,你可以使用 npm link 命令。这个命令通常用于开发阶段,以便你可以在本地开发一个包的同时,在同一台机器上的另一个项目中使用它。这里是如何做到这一点的步骤:

  1. 在你的包的根目录下,运行 npm link。这将会在全局 node_modules 目录中创建一个符号链接,该链接指向你的包的目录。
cd path/to/your-package
npm link

这个命令会在全局 node_modules 目录(例如,在 Unix 系统上可能是 /usr/local/lib/node_modules 或在 Windows 上可能是 %AppData%/npm/node_modules)中创建一个符号链接,该链接指向你的包的目录。同时,它还会将包的可执行文件(如果 package.json 中有定义)链接到系统的 PATH 中,使其可以全局运行。

  1. 在要使用你的包的项目目录下,运行 npm link package-name,其中 package-name 是你的包的名称,如在 package.json 中定义的那样。
cd path/to/other-project
npm link your-package-name

这个命令会在当前项目的 node_modules 目录中创建一个符号链接,该链接指向全局 node_modules 目录中的你的包的符号链接。

现在,你的包就被链接到了这个项目中,你可以像使用其他 npm 包一样使用它。任何对包的改动都会即时反映到这个链接的项目中,不需要重新安装。

当你完成开发并且不再需要这个链接时,你可以使用以下命令来取消链接:

在其他项目中取消链接:

cd path/to/other-project
npm unlink your-package-name

然后在包的目录中取消全局链接:

cd path/to/your-package
npm unlink

这会移除全局 node_modules 目录和其他项目中的符号链接。这样可以确保你的开发环境保持干净,不会有无意中留下的全局链接。 如果你的本地包 bao 中并没有定义 bin 字段,那么npm link命令不会在node_modules/.bin目录中创建符号链接。它只会在全局 node_modules 目录和项目的 node_modules 目录之间创建链接。

当链接失败时,可尝试取消链接操作(使用 npm unlink bao),然后清除 npm 缓存(使用 npm cache clean --force),再次尝试链接操作。