Skip to content

本地调试外部依赖库的好助手 - yalc #37

@wujunchuan

Description

@wujunchuan

如果你在本地调试过外部依赖库,那么一定对 npm link 不会陌生,通过 link 命令可以将我们要使用的外部依赖从本地链接到全局 node_modules,之后在具体项目中我们再把他 link 进来,则完成了一次操作。但如果我们的项目和 library 共同维护了一份框架代码副本,那么 link 可能还会有一些其他意想不到的错误。

yalc 是一个类似于本地化 npm 的解决方案,它在本地环境中创建了一个共享的 library 存储库,使得你在需要使用本地依赖时可以快速从这个存储库拉取资源进行消费。

项目地址: https://github.com/whitecolor/yalc

Better workflow than npm | yarn link for package authors.

全局安装: yarn global add yalc

例子:

did-sdk 项目

  1. yarn run build # 本地构建
  2. yalc publish # 发布到本地 yalc register

依赖did-sdk的项目

  1. yalc add did-sdk # 依赖本地的yalc register

此时会在项目中生成目录 .yalcyalc.lock 文件, 我是更加倾向于ignore的

调试不可能一蹴而就的, 肯定要往复不断

did-sdk有更新的话, 记得在did-sdk项目下执行 yalc publish ; 同时在依赖did-sdk的项目下执行 yalc update

手动在两个项目执行yalc publishyalc update 太麻烦了怎么办

别慌, 其实是有自动化方案的,可以参考这篇文章 yalc + nodemon 方案

【第1955期】前端组件库本地开发调试的自动化流程实现

Git全局忽略文件

执行 yalc add 后会生成配置文件 yalc.lock, 为了防止不小心被提交到仓库, 最佳做法还是将其纳入 .gitignore
但是每个项目都单独添加的话, 很容易遗忘, 这里需要在全局git配置中忽略

  • 编辑 ~/.gitignore_global

    yalc.lock
    .yalc/
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions