美文网首页
本地调试 npm 模块 —— npm link

本地调试 npm 模块 —— npm link

作者: 竹本 | 来源:发表于2020-11-29 23:00 被阅读0次

    在 Node 开发过程中随着代码规模的增加,会把一些基础模块封装成独立发布的 npm 包,供所有项目使用。但问题来了:
    修改库包的代码后,如何与使用该库的项目代码集成测试?
    每次发布到 npmjs 或私库,都会导致版本号更新太频繁;用软连接,各个文件夹切来切去,还得找到 global npm 包的位置。
    其实只需要使用 npm 命令npm link就能够实现。

    相同目录下的链接

    • 项目和模块在同一个目录下,可以直接使用相对路径链接
    // 进入项目目录
    $ cd path/to/my-project
    // 链接模块目录
    $ npm link path/to/my-module
    
    • npm link 操作会在项目的 node_modules 目录下创建一个 module-name 的超链接(类似 Windows 的快捷方式)或称 “symlink”,链接到 path/to/my-module
    • path/to/my-projectpath/to/my-module 都是二者 package.json 文件所在的目录。
    • module-name 依据 npm 模块的 package.json 指定。

    不同目录下的链接

    • 项目和模块不在同一个目录下,需要先把模块链接到全局,然后再在项目中链接模块
    // 先去到模块目录,把它链接到全局
    $ cd path/to/my-module
    $ npm link
    
    • npm link 操作会在全局 node_modules 目录(如 MacOS 默认的是 /usr/local/lib/node_modules)下创建一个 module-name 的超链接。
    // 再去项目目录
    $ cd path/to/my-project
    // 通过包名建立链接
    $ npm link module-name
    
    • 此时只需要指定 module-name,在项目的 node_modules 目录下创建一个 module-name 的超链接,链接到 /usr/local/lib/node_modules/module-name,然后再由全局目录下的超链接,链接到具体的代码目录下。

    解除链接

    • 解除项目和模块的链接
    // 进入项目目录,解除链接
    $ cd path/to/my-project
    $ npm unlink module-name
    
    • 解除模块的全局链接
    // 进入模块目录,解除链接
    $ cd path/to/my-module
    $ npm unlink module-name
    

    相关文章

      网友评论

          本文标题:本地调试 npm 模块 —— npm link

          本文链接:https://www.haomeiwen.com/subject/vxylwktx.html