Yacl

yalc 是一款为包开发者设计的本地包管理工具,提供比 npm/yarn link 更优的工作流,可在本地环境中共享未发布的开发中包,避免依赖解析和符号链接互操作性问题。

核心优势

  • 模拟 npm 发布行为,仅同步应发布的文件,一致性更强。

  • 支持文件复制和符号链接两种依赖方式,灵活适配不同场景。

  • 生成 yalc.lock 确保依赖版本一致性,支持工作区和单体仓库。

  • 可自动同步包更新到所有使用项目,提升开发效率。

安装方式

基础命令使用

1. 发布本地包(Publish)

将本地开发的包上传到 yalc 全局存储目录(默认 ~/.yalc)。

2. 添加本地包到项目(Add)

在依赖项目中引入 yalc 存储的本地包。

类似 npm/yarn link,但从项目 .yalc 目录创建符号链接,不修改 package.json。

4. 更新本地包(Update)

同步本地包的最新版本到项目中。

5. 移除本地包(Remove)

从项目中删除 yalc 管理的包。

6. 管理安装记录(Installations)

查询或清理包的安装记录。

高级功能

1. 暂退与恢复(Retreat & Restore)

临时还原或重新启用 yalc 管理的包。

2. 忽略文件配置

  • 创建 .yalcignore 文件,添加无需发布的文件(如 README.md),语法同 .gitignore

  • 若需在包中包含 .yalc 文件夹,需在 .npmignore 中添加 !.yalc

3. Git 集成策略

排除在 Git 之外(临时使用)

  • .yalcyalc.lock 添加到 .gitignore

  • 使用 yalc link 避免修改 package.json。

  • 预提交钩子中添加 yalc check,防止遗漏移除 yalc 依赖。

纳入 Git 管理(团队共享开发中包)

  • 直接提交 .yalcyalc.lock 到仓库,确保团队依赖一致。

  • .gitignore 中添加 **/.yalc/**/*.md 排除非代码文件。

4. 工作区适配(Yarn/Pnpm Workspaces)

  • 启用工作区的项目中添加包时,默认使用 --pure 模式,不修改 package.json。

  • 在项目 package.jsonworkspaces 中添加 .yalc/*.yalc/@*/*,自动同步更新。

  • 使用 --no-pure 覆盖默认行为。

5. 自定义配置

  • 通过 --store-folder 覆盖全局存储目录:yalc publish --store-folder /custom/path

  • 创建 .yalcrc 文件设置默认选项(如 workspace-resolve=false 禁用 workspace 协议解析,sig=false 禁用版本签名)。

6. 输出控制

  • --quiet:仅显示错误信息,禁用其他输出。

  • --no-colors:禁用彩色输出。

注意事项

  • Windows 用户需确保发布的源代码使用 LF 换行符,否则部分脚本可能失效。

  • yalc 完全模拟 npm pack 的文件包含规则,嵌套 .yalc 文件夹需在 package.jsonfiles 中明确声明。

  • 生命周期脚本执行顺序:发布前(prepublish → prepare → prepublishOnly → prepack → preyalcpublish),发布后(``postyalcpublish → postpack → publish → postpublish`)。

最后更新于