Skip to content

包开发与发布 ​

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


初始化 ​

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

发布前在 npm 官网确认 name 全局唯一;version 遵循 semver(主.次.修订);补齐 main / module / exports、files 或 .npmignore、repository、license。

典型目录: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.cjs 与 dist/index.esm.js,prepublishOnly 里执行 npm run build && npm test。

库作者清单 ​

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