学无先后,达者为师

网站首页 编程语言 正文

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

作者:Lvan-Zhang 更新时间: 2022-01-16 编程语言

背景

当你开发一个 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):

  1. npm init -f 得到 package.json 并在该文件添加一行代码 "bin": "./bin/foo.js",表示本npm包的可执行文件位于bin/foo.js

  2. 在 testlink 文件夹里创建目录 bin,在bin中创建文件 foo并在里面写上

    #!/usr/bin/env node
    console.log('foo run success');
    
  3. 进入 testlink 文件夹并执行 node bin/foo.js 会看到 foo run success

  4. 在 testlink 下执行命令 npm link
    在这里插入图片描述

  5. 此时,在任意一个位置执行 testlink/bin/foo.js 都可以看到输出 foo run success

  6. 如果我们修改 foo.js 的代码,然后重新执行 testlink/bin/foo.js 就可以看到值改变了

原文链接:https://blog.csdn.net/weixin_43972437/article/details/108963625

栏目分类
最近更新