avatar

目录
Npm专题(四)包的调试技巧

前言

我们发布一个npm包之后,在项目中安装然后使用,难免会遇到npm包中有bug的情况,这时候需要npm包和项目一起调试来找到问题;本文整理了几个npm包调试的技巧;

三种常用方法:

  • 直接修改 dependencies
  • npm link
  • yalc


直接修改 dependencies

  1. 修改npm包代码,然后重新打包

  2. 修改package.json文件

    json
    1
    2
    - "@shengshunyan/utils": "^1.0.2"
    + "@shengshunyan/utils": "file:/Users/guoshi/Desktop/shengshunyan-utils"
  3. 项目重新安装 @shengshunyan/utils

    bash
    1
    npm install


npm link用来在本地项目和本地npm模块之间建立连接,可以在本地进行模块测试

  1. npm包目录下

    bash
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 1. 开启开发模式,修改源码,自动打包
    npm run dev
    # 2. 将当前npm包链接到本地全局
    npm link
    # 3. 查看链接效果
    npm ls --global

    /usr/local/lib
    ├── @shengshunyan/utils@1.0.2 -> /Users/guoshi/Desktop/shengshunyan-utils
    ├── # ...other module
  2. 项目目录下

    bash
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 1. 将项目里的包@shengshunyan/utils链接到本地全局
    npm link @shengshunyan/utils
    # 2. 运行项目
    npm run dev
    # 3. 查看链接效果
    npm ls

    my-app@0.1.0 /Users/guoshi/Desktop/day-day-up/react-test
    ├── @shengshunyan/utils@1.0.2 -> /Users/guoshi/Desktop/shengshunyan-utils
    ├── # ...other module
  3. 修改npm包的源码,改动就会实时同步到项目中

  4. 调试完毕,删除link

    bash
    1
    2
    3
    4
    5
    # 1. npm包目录下
    npm uninstall -g @shengshunyan/utils
    # 2. 项目目录下
    npm uninstall @shengshunyan/utils
    npm install --save @shengshunyan/utils

NPM 组件 和你的项目使用了 React Hooks 的情况,React 会报致命异常。(原因是 React Hooks 依赖上下文,所以全局只能使用一个,即使是版本完全一样的)

yalc

yalc 将组件的包依赖提升至应用中,在全局添加组件依赖,在应用下新建文件拉取依赖,即使有共同的依赖也会从应用的 node_modules 去查找。「使用 yalc 可以避免上面 npm link 的依赖问题」

  1. 安装yalc包

    bash
    1
    npm install -g yalc
  2. npm包目录下

    bash
    1
    2
    3
    4
    5
    6
    # 1. 发布npm包
    yalc publish
    # 2. package.json文件里添加scripts脚本
    "watch": "nodemon --ignore node_modules/ --watch src/ --ext ts,tsx,scss -x 'rollup -c && yalc push'",
    # 3. 监听模块代码改动,自动打包、更新包
    npm run watch
  3. 项目目录下

    bash
    1
    2
    3
    4
    # 1. 在项目中 link 对应的包
    yalc link @shengshunyan/utils
    # 2. 运行项目
    npm run dev
  4. 修改npm包的源码,改动就会实时同步到项目中

  5. 调试完毕,删除link

    bash
    1
    2
    3
    4
    # 1. 项目目录下
    yalc remove @shengshunyan/utils
    npm uninstall @shengshunyan/utils
    npm install --save @shengshunyan/utils
文章作者: 盛顺炎
文章链接: https://www.shengshunyan.xyz/2021/09/19/Npm%E4%B8%93%E9%A2%98(%E5%9B%9B)%E5%8C%85%E7%9A%84%E8%B0%83%E8%AF%95%E6%8A%80%E5%B7%A7/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 果实的技术分享
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论