UNPKG

grid-npm-auto-publish

Version:
160 lines (118 loc) 3.44 kB
# NPM包开发优化指南 ## 问题分析 在开发业务时经常需要修改npm包,传统流程存在以下问题: 1. 本地开发调试困难 2. 每次修改都需要发布新版本 3. 发布流程复杂耗时 4. 版本管理混乱 ## 解决方案 ### 方案一:npm link(推荐用于本地开发) #### 在npm包项目中: ```bash # 1. 在npm包目录下创建全局链接 npm link grid-npm-auto-publish # 2. 启动监听模式(如果有构建过程) npm run watch ``` #### 在使用该npm包的项目中: ```bash # 1. 链接到本地npm包 npm link grid-npm-auto-publish # 2. 验证链接是否成功 npm ls grid-npm-auto-publish ``` #### 优势: - ✅ 实时同步修改 - ✅ 无需发布即可测试 - ✅ 支持热重载 - ✅ 开发效率高 #### 注意事项: - 记得在开发完成后取消链接:`npm unlink grid-npm-auto-publish` - 确保两个项目的Node.js版本兼容 ### 方案二:本地文件依赖 在业务项目的`package.json`中: ```json { "dependencies": { "grid-npm-auto-publish": "file:../path/to/grid-npm-auto-publish" } } ``` #### 优势: - ✅ 简单直接 - ✅ 支持相对路径 - ✅ 适合临时调试 #### 缺点: - ❌ 需要手动更新依赖 - ❌ 不支持热重载 ### 方案三:Monorepo架构 使用Lerna或Nx管理多个包: ```bash # 安装Lerna npm install -g lerna # 初始化monorepo lerna init # 添加包 lerna create package-name ``` #### 优势: - ✅ 统一版本管理 - ✅ 依赖关系清晰 - ✅ 支持工作区 - ✅ 批量发布 ### 方案四:快速发布脚本 使用我们提供的快速发布脚本: ```bash # 快速发布补丁版本 node scripts/quick-release.js patch # 快速发布次要版本 node scripts/quick-release.js minor # 跳过测试快速发布 node scripts/quick-release.js patch --skip-tests ``` ## 推荐工作流程 ### 开发阶段 1. 使用 `npm link` 进行本地开发 2. 在业务项目中实时测试 3. 使用 `npm run watch` 监听文件变化 ### 测试阶段 1. 取消链接:`npm unlink grid-npm-auto-publish` 2. 安装最新版本进行集成测试 3. 运行完整测试套件 ### 发布阶段 1. 使用快速发布脚本:`node scripts/quick-release.js patch` 2. 等待GitHub Actions自动发布 3. 在业务项目中更新依赖版本 ## 最佳实践 ### 1. 版本管理 - 使用语义化版本控制 - 在README中记录变更日志 - 使用Git标签管理版本 ### 2. 开发工具 - 配置ESLint和Prettier - 使用TypeScript提供类型安全 - 编写单元测试和集成测试 ### 3. 自动化 - 使用GitHub Actions自动发布 - 配置CI/CD流程 - 自动化测试和构建 ### 4. 文档维护 - 保持README更新 - 提供使用示例 - 记录API变更 ## 常见问题解决 ### Q: npm link后修改不生效? A: 检查是否有构建过程,确保运行了`npm run build``npm run watch` ### Q: 如何取消npm link? A: 在使用该包的项目中运行:`npm unlink grid-npm-auto-publish` ### Q: 发布失败怎么办? A: 检查GitHub Actions日志,确保NPM_TOKEN配置正确 ### Q: 如何回滚版本? A: 使用`npm version`命令回滚,然后重新发布 ## 总结 通过以上方案,您可以: 1. 大幅提升开发效率 2. 简化发布流程 3. 减少版本管理复杂度 4. 提高代码质量 推荐使用 **npm link + 快速发布脚本** 的组合方案,既保证了开发效率,又简化了发布流程。