使用 yalc + nodemon 实现本地 NPM 包的高效开发联调

🚀 使用 yalc + nodemon 实现本地 NPM 包的高效开发联调

在开发本地 NPM 包(如组件库、工具库、CLI 等)时,频繁地发布 & 引入到其他项目测试是个麻烦事。

这时候我们可以通过 yalc + nodemon 实现一套 自动构建 + 自动推送 + 自动联调 的高效流程。


🧰 使用工具简介

工具 作用
yalc 本地 npm 包管理工具,用于将本地包发布并推送到目标项目进行测试
nodemon 监听源码变化,自动执行命令(如重启服务或重新构建)

🏗️ 项目结构假设

```bash my-lib/ # 本地开发的 npm 包 my-app/ # 使用 my-lib 的目标项目 ```


🛠️ my-lib 设置步骤

1. 安装依赖

```bash npm install --save-dev yalc nodemon ```

2. 配置 package.json

```json { "scripts": { "build": "tsc", // 或 vite、rollup 等构建命令 "yalc:push": "yalc publish --push", "dev": "nodemon --watch src --ext ts,js,json --exec "npm run build && npm run yalc:push"" } } ```

3. 可选 .nodemon.json 配置(简化脚本)

```json { "watch": "src", "ext": "ts,js,json", "exec": "npm run build && npm run yalc:push" } ```

此时 npm run dev 等效于 nodemon


📦 在 my-app 中使用 yalc 包

  1. 安装 yalc(只需一次):

    ```bash npm install -g yalc ```

  2. my-app/ 项目中引入包:

    ```bash yalc add my-lib ```

  3. 后续每次在 my-lib 中运行 yalc pushmy-app 会自动获取到最新依赖版本。


🚴‍♀️ 开发联调流程

  1. 启动开发命令:

    ```bash cd my-lib npm run dev ```

  2. 修改 my-lib/src/ 代码后,会自动:

    • 执行构建命令
    • 将包通过 yalc publish --push 更新到 my-app
  3. my-app 项目中可以立即看到最新效果。


✅ 优点总结

  • 不用每次改完代码都 npm publish
  • yalc 不污染 node_modules,卸载也方便
  • nodemon 自动构建 + 推送,节省大量手动操作时间

🧩 常见扩展用法

用途 工具
构建组件库 vite, rollup, tsup
CLI 工具联调 yalc + nodemon + commander
UI 组件开发 yalc + storybook + devApp
后端服务联调 yalc + nodemon + express

💬 补充建议

  • 可以把 yalc.lock 加入 .gitignore
  • 如果是 UI 组件库,也可以用 yalc 同时 push 给多个 demo 项目
  • 使用 yalc remove my-lib 来清除依赖

🎉 总结

使用 yalc + nodemon,可以极大提升本地 NPM 包开发效率,做到代码改动自动同步、实时调试,适合:

  • 多项目协作开发
  • 组件库、工具库、CLI 开发场景
  • 本地联调而不需要频繁发包
相关推荐
爱分享的程序猿-Clark27 分钟前
【前端分享】vue开发项目,如何实现 从A页面跳转到B页面,并传值!
前端·javascript·vue.js
breeze jiang1 小时前
从原生事件到 React 组件化:用状态驱动模型加载进度 UI
前端·react.js·ui
徐小夕1 小时前
花了3天,我写了一款开源AI公众号编辑器
前端·vue.js·github
PBitW1 小时前
git 中容易遗忘的点 (二) ⚡⚡⚡
前端·git·面试
Hilaku1 小时前
2026 年前端大洗牌:React 服务端到 Vite 的底层重构
前端·javascript·程序员
PBitW1 小时前
git 中容易遗忘的点 (三) 🚀🚀🚀
前端·git·面试
名字还没想好☜1 小时前
React setState 连续调用「丢更新」排查:批量更新与函数式更新
前端·javascript·react.js·react·usestate
come112342 小时前
Vue 2 与 Vue 3 语法区别及使用技巧
前端·javascript·vue.js
腻害兔2 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:ERP 企业资源模块,一个轻量级进销存的完整实现?
前端·javascript·vue.js·人工智能·前端框架·产品经理·ai编程
虹科网络安全2 小时前
艾体宝新闻|从 SQL 注入到服务器接管:CVE-2026-57517 暴露 Web 管理面板的供应链与安全编码风险
服务器·前端·sql