npm-publish
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesenpm Publish Skill
npm 发布技能
Publish to npm while keeping the default registry as GitHub Packages.
@autumnsgrove/groveengine将发布至npm,同时保持默认仓库为GitHub Packages。
@autumnsgrove/groveengineWhen to Activate
激活时机
Activate this skill when:
- User says "publish to npm"
- User says "release to npm"
- User says "bump and publish"
- User says "/npm-publish"
在以下场景激活此技能:
- 用户说"发布到npm"
- 用户说"发布版本到npm"
- 用户说"升级版本并发布"
- 用户说"/npm-publish"
The Workflow
工作流
CRITICAL: The package.json uses GitHub Packages by default. You MUST swap to npm, publish, then swap BACK.
1. Bump version in packages/engine/package.json
2. Swap publishConfig to npm registry
3. Build the package
4. Publish to npm
5. Swap publishConfig BACK to GitHub Packages
6. Commit the version bump
7. Push to remote重要提示:package.json默认使用GitHub Packages。你必须切换到npm仓库,完成发布后,再切换回原仓库。
1. 升级packages/engine/package.json中的版本号
2. 将publishConfig切换为npm仓库
3. 构建包
4. 发布至npm
5. 将publishConfig切换回GitHub Packages
6. 提交版本升级的变更
7. 推送到远程仓库Step-by-Step Execution
分步执行指南
Step 1: Bump Version
步骤1:升级版本号
Edit :
packages/engine/package.jsonjson
"version": "X.Y.Z", // Increment appropriatelyUse semantic versioning:
- MAJOR (X): Breaking changes
- MINOR (Y): New features, backwards compatible
- PATCH (Z): Bug fixes, backwards compatible
编辑:
packages/engine/package.jsonjson
"version": "X.Y.Z", // 按需升级版本使用语义化版本控制:
- 主版本号(X):不兼容的重大变更
- 次版本号(Y):新增功能,向后兼容
- 修订版本号(Z):修复bug,向后兼容
Step 2: Swap to npm Registry
步骤2:切换到npm仓库
BEFORE (GitHub Packages - default):
json
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},AFTER (npm - for publishing):
json
"publishConfig": {
"registry": "https://registry.npmjs.org",
"access": "public"
},切换前(默认使用GitHub Packages):
json
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},切换后(用于发布的npm仓库):
json
"publishConfig": {
"registry": "https://registry.npmjs.org",
"access": "public"
},Step 3: Build Package
步骤3:构建包
bash
cd /Users/autumn/Documents/Projects/GroveEngine/packages/engine
pnpm run packagebash
cd /Users/autumn/Documents/Projects/GroveEngine/packages/engine
pnpm run packageStep 4: Publish to npm
步骤4:发布至npm
bash
npm publish --access publicThe script runs automatically, so this may rebuild.
prepublishOnlypnpm run packageVerify success with:
+ @autumnsgrove/groveengine@X.Y.Zbash
npm publish --access publicprepublishOnlypnpm run package通过以下信息验证发布成功:
+ @autumnsgrove/groveengine@X.Y.ZStep 5: Swap BACK to GitHub Packages
步骤5:切换回GitHub Packages
CRITICAL - DO NOT FORGET THIS STEP
Change back to:
packages/engine/package.jsonjson
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},重要提示 - 请勿忘记此步骤
将改回:
packages/engine/package.jsonjson
"publishConfig": {
"registry": "https://npm.pkg.github.com"
},Step 6: Commit Version Bump
步骤6:提交版本升级的变更
bash
cd /Users/autumn/Documents/Projects/GroveEngine
git add packages/engine/package.json
git commit -m "chore: bump version to X.Y.Z"
git push origin mainbash
cd /Users/autumn/Documents/Projects/GroveEngine
git add packages/engine/package.json
git commit -m "chore: bump version to X.Y.Z"
git push origin mainQuick Reference Commands
快速参考命令
bash
undefinedbash
undefinedFrom project root:
从项目根目录执行:
1. Edit version in packages/engine/package.json
1. 编辑packages/engine/package.json中的版本号
2. Edit publishConfig to npm registry
2. 将publishConfig切换为npm仓库
3. Build and publish
3. 构建并发布
cd packages/engine
pnpm run package
npm publish --access public
cd packages/engine
pnpm run package
npm publish --access public
4. Edit publishConfig back to GitHub
4. 将publishConfig切换回GitHub仓库
5. Commit and push (from project root)
5. 提交并推送(从项目根目录)
git add packages/engine/package.json
git commit -m "chore: bump version to X.Y.Z"
git push origin main
undefinedgit add packages/engine/package.json
git commit -m "chore: bump version to X.Y.Z"
git push origin main
undefinedVerification
验证发布结果
After publishing, verify on npm:
bash
npm view @autumnsgrove/groveengine version发布完成后,通过以下命令在npm上验证:
bash
npm view @autumnsgrove/groveengine versionTroubleshooting
故障排除
OTP/2FA Error
OTP/双因素认证错误
npm error code EOTP
npm error This operation requires a one-time passwordSolution: Create a granular access token with "Bypass 2FA" enabled:
- Go to https://www.npmjs.com/settings/autumnsgrove/tokens
- Generate New Token → Granular Access Token
- Enable "Bypass 2FA"
- Set token:
npm config set //registry.npmjs.org/:_authToken=npm_YOUR_TOKEN
See for detailed token setup.
AgentUsage/npm_publish.mdnpm error code EOTP
npm error This operation requires a one-time password解决方法:创建一个带有“绕过双因素认证”权限的精细化访问令牌:
- 访问https://www.npmjs.com/settings/autumnsgrove/tokens
- 生成新令牌 → 精细化访问令牌
- 启用“绕过双因素认证”
- 设置令牌:
npm config set //registry.npmjs.org/:_authToken=npm_YOUR_TOKEN
详细的令牌设置步骤请查看。
AgentUsage/npm_publish.mdPackage Already Published
包已发布
npm error 403 - You cannot publish over the previously published versionsSolution: You forgot to bump the version. Increment it and try again.
npm error 403 - You cannot publish over the previously published versions解决方法:你忘记升级版本号了。升级版本号后重试。
Wrong Registry in Commit
提交时仓库配置错误
If you accidentally committed with npm registry, fix it:
bash
undefined如果你不小心提交了npm仓库的配置,修复方法:
bash
undefinedEdit publishConfig back to GitHub
将publishConfig切换回GitHub仓库
git add packages/engine/package.json
git commit --amend --no-edit
git push --force-with-lease origin main
undefinedgit add packages/engine/package.json
git commit --amend --no-edit
git push --force-with-lease origin main
undefinedRegistry Swap Reference
仓库配置切换参考
| Registry | publishConfig |
|---|---|
| GitHub (default) | |
| npm (for publish) | |
| 仓库 | publishConfig 配置 |
|---|---|
| GitHub(默认) | |
| npm(用于发布) | |
Checklist
检查清单
Before starting:
- Decided on new version number
- All changes committed and pushed
During publish:
- Version bumped in package.json
- publishConfig swapped to npm
- Package built successfully
- Published to npm (see )
+ @autumnsgrove/groveengine@X.Y.Z - publishConfig swapped BACK to GitHub
- Version bump committed
- Pushed to remote
开始发布前:
- 确定新的版本号
- 所有变更已提交并推送到远程仓库
发布过程中:
- 已升级package.json中的版本号
- 已将publishConfig切换为npm仓库
- 包构建成功
- 已发布至npm(看到提示)
+ @autumnsgrove/groveengine@X.Y.Z - 已将publishConfig切换回GitHub Packages
- 已提交版本升级的变更
- 已推送到远程仓库
Related
相关文档
- - Token setup and 2FA workaround
AgentUsage/npm_publish.md - - Package configuration
packages/engine/package.json
- - 令牌设置与双因素认证解决方案
AgentUsage/npm_publish.md - - 包配置文件
packages/engine/package.json