← ClaudeAtlas

npm-publishlisted

当用户要求"发布 npm 包/发 npm/npm publish"时触发。 按生态规范发布 npm 包到 npmjs.com:@structure-projects scope + 校验 + 验证。
structure-projects/structure-agent-rules · ★ 1 · AI & Automation · score 66
Install: claude install-skill structure-projects/structure-agent-rules
# npm 发布 > 按生态规范发布 npm 包。**仅组件库可发布;业务包 MUST private: true**。 ## 前置条件 - CI 通过 - 版本号符合语义化版本 - `package.json` 含 `publishConfig.access: "public"` + `files: ["dist"]` ## 关键约束(MUST 遵守) ### package.json 配置 ```json { "name": "@structure-projects/components", "version": "1.2.0", "private": false, "publishConfig": { "access": "public" }, "files": ["dist"], "scripts": { "build": "...", "prepublishOnly": "npm run build && npm run test" } } ``` ### 业务包禁止发布 ```json { "name": "user-ui", "private": true } ``` **规则**: - ✅ **MUST** 组件库用 `@structure-projects` scope - ✅ **MUST** 组件库 `private: false` + `publishConfig.access: "public"` - ❌ **MUST NOT** 业务包(`*-ui`)发布到 npm ## 执行步骤 ### 第 1 步:发布前检查 ```bash # 检查 package.json cat package.json | jq '.name, .version, .private, .publishConfig' # 校验 # - name MUST @structure-projects/* # - private MUST != true # - publishConfig.access MUST = "public" ``` ### 第 2 步:升级版本 ```bash # 语义化版本 npm version patch # 1.0.0 → 1.0.1(修复) npm version minor # 1.0.0 → 1.1.0(新功能) npm version major # 1.0.0 → 2.0.0(破坏性) # 或指定版本 npm version 1.2.0 --no-git-tag-version ``` ### 第 3 步:构建 + 测试 ```bash npm ci npm run build npm run test ``` ### 第 4 步:发布 **MUST 用户确认后执行**: ```bash # 登录(如未登录) npm login # 发布 npm publish --access public # 或干跑预览 npm publish --dry-run ``` ### 第 5 步:验证 ```bash # 查看包信息 npm view @structure-projects/components # 安装验证 npm install @structure-projects/components@1.2.0 # 在测试项目里 import 验证 ``` ### 第 6 步:打 Tag