npm:使用npm link来调试本地的包

    科技2025-09-13  41

    背景

    当你开发一个 npm 包想要调试它的时候,如果一次次的发布到 npm 仓库,然后再安装调试,这是很麻烦的。我们可以通过 npm link 命令来在本地进行调试。

    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 就可以看到值改变了

    Processed: 0.008, SQL: 8