npm包开发建议
技术选型
建议根据所开发的npm包功能,选择更加快速且合理的打包方案。如果开发的是一个
tools这样的工具库,显然更适合用rollup打包。如果是开发的是一个业务组件(vue),则更加适合采用@vue/cli的lib模式来构建。
为什么一定要选择打包工具来开发 npm 包?
- 不一定非要使用构建工具来开发,使用构建工具主要是为了使用它强大的生态系统。比如代码风格检测、本地服务、同时构建多种规范的产物等等,方便我们的开发
为什么是 rollup 而不是 webpack?
- 随着
rollup和webpack的版本更新,二者之间的差异性特性越来越小 rollup配置简单,支持同时打包输出多种规范的产物(iife、cjs、umd、esm、amd、system)webpack功能强大社区丰富,更加适合大型应用;不支持打包输出为es module,而且产物不是很纯净- 构建
App应用时,webpack比较合适;如果是类库(纯js项目),rollup更加适合。
完整的开发流程
- 初始化项目
- 创建合理的目录结构
- 配置
eslint统一代码风格 - 配置
typescript开发环境 - 配置
babel - 配置
git提交的校验钩子 - 开始编写代码
- watch 模式开发(本地服务)
- 添加单元测试,编写测试示例
- 完善
package.json必要字段 - 配置合适的
npm script - 本地测试开发的
npm包 - 发布包到
npm - 提交代码到
git仓库
合理的包结构
1 | ├── bin // 用于存放可执行二进制文件的目录 |
致谢
本文摘抄于以下文章,在此致以诚挚谢意!