企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # yalc [yalc](https://github.com/whitecolor/yalc) 是一个类似于本地化 npm 的解决方案,它在本地环境中创建了一个全局共享的 library 存储库,使得你在需要使用本地依赖时可以快速从这个存储库拉取资源进行消费。 当在指定 library 中运行`yalc publish`时,它会将本来发布到 npm 上的库,存储在共享的全局存储中。 在项目中通过 yalc 添加依赖时,`yalc add xxx`会从全局存储拉入信息到项目根目录的`.yalc`文件夹,并将一个文件`"file:.yalc/xxx"`注入`package.json`,这就是`yalc`创建的`flie:`软链接。同时也会在项目根目录创建一个`yalc.lock`确保引用资源的一致性。 因此,测试完项目还需要执行删除`yalc`包的操作,才能正常使用。`yalc`也是支持`link:`链接方式。 ~~~shell # in the in-development package's directory $ yalc publish # in the dependent project's directory $ yalc add <dependency name> # in the in-development package's directory $ yalc push # shorthand for yalc publish --push ~~~ ## 安装 ``` NPM: npm i yalc -g Yarn: yarn global add yalc ``` ### 发布依赖 在所开发的依赖项目下执行发布操作 ``` yalc publish ``` 此时如果存在`npm 生命周期`脚本:`prepublish`、`prepare`、`prepublishOnly`、`prepack`、`preyalcpublish`,会按此顺序逐一执行。如果存在:`postyalcpublish`、`postpack`、`publish`、`postpublish`,也会按此顺序逐一执行。 想要完全禁用脚本执行需要使用 ``` yalc publish --no-scripts ``` 此时就已经将依赖发布到本地仓库了。此命令只是发包并不会主动推送。 当有新修改的包需要发布并且推送时,可以使用推送命令快速更新**所有**依赖 ``` yalc publish --push yalc push // 简写 ``` ## 移除依赖 ``` yalc remove [my-package] yalc remove --all // 移除所有依赖并还原 ``` ## 查看仓库信息 当我们要查看本地仓库里存在的包时 ``` yalc installations show ``` 要清理不需要的包时 ``` yalc installations clean [my-package] ``` 参数: * `--changed`,快速检查文件是否被更改 * `--replace`,强制替换包 > [前端组件库本地开发调试的自动化流程实现](https://zhuanlan.zhihu.com/p/142554961) > [How to use local Node packages as project dependencies](https://www.viget.com/articles/how-to-use-local-unpublished-node-packages-as-project-dependencies/) # 参考 [yalc 更适普的前端link工具](https://segmentfault.com/a/1190000039658156)