当你开发一个 npm 包想要调试它的时候,如果一次次的发布到 npm 仓库,然后再安装调试,这是很麻烦的。我们可以通过 npm link 命令来在本地进行调试。
语法:
// 项目和模块在同一个目录下,可以使用相对路径 npm link ../module // 项目和模块不在同一个目录下 cd到模块目录,npm link,进行全局link cd到项目目录,npm link 模块名(package.json中的name) // 解除link 解除项目和模块link,项目目录下,npm unlink 模块名 解除模块全局link,模块目录下,npm unlink 模块名npm link 命令可以将一个任意位置的npm包链接到全局执行环境,从而在任意位置使用命令行都可以直接运行该npm包。
这个命令主要做了两件事:
为npm包目录创建软链接,将其链到 {prefix}/lib/node_modules/<package>为可执行文件(bin)创建软链接,将其链到 {prefix}/bin/{name}我的操作系统是 macOS,我在家目录(~)里创建了一个文件夹 testlink(/Users/zhangyu/testlink):
npm init -f 得到 package.json 并在该文件添加一行代码 "bin": "./bin/foo.js",表示本npm包的可执行文件位于bin/foo.js
在 testlink 文件夹里创建目录 bin,在bin中创建文件 foo并在里面写上
#!/usr/bin/env node console.log('foo run success');进入 testlink 文件夹并执行 node bin/foo.js 会看到 foo run success
在 testlink 下执行命令 npm link
此时,在任意一个位置执行 testlink/bin/foo.js 都可以看到输出 foo run success
如果我们修改 foo.js 的代码,然后重新执行 testlink/bin/foo.js 就可以看到值改变了