Skip to content

包开发与发布

流程:初始化 → 写入口与导出 → 本地联调(link / workspace)→ 测试 → semver → 发布 → 维护。勿将账号密钥写入仓库。


初始化

bash
mkdir my-pkg && cd my-pkg
npm init          # 或 npm init -y

发布前在 npm 官网确认 name 全局唯一version 遵循 semver(主.次.修订);补齐 main / module / exportsfiles.npmignorerepositorylicense

典型目录:index.js(或 dist/)、src/package.json


本地调试

  • npm link:在包目录 npm link,业务项目里 npm link 包名。Vue/React 易出现 双实例,框架常放 peerDependencies
  • Monorepo workspaces:同仓多包互相引用,减少反复 publish。

版本号

级别含义示例命令
修订兼容修复npm version patch
次版本兼容新功能npm version minor
主版本破坏性变更npm version major

可与 git tag 联动(按团队规范)。


发布

bash
npm login
npm pack              # 预览打进包的文件(推荐)
npm publish           # scoped:常 npm publish --access public

发布前确认 registry 为官方.env、密钥勿打入包内。撤销 npm unpublish 限制严、伤害下游,优先发 patch 修复。


ESM 与双格式

  • 纯 ESM:根目录 "type": "module" + import/export
  • 同时发 CJS + ESM:用 exports 区分条件导出;构建可用 Rollup 产出 dist/index.cjsdist/index.esm.jsprepublishOnly 里执行 npm run build && npm test

库作者清单

理清入口与 TypeScript 类型peerDependencies 约束宿主框架;files 控制发包体积;README 写明 Node 版本与用法。