这个npm包里有什么
这个npm包故意很小——它是一个 发射器存根,而不是。 完整的应用程序:
package/
package.json # allowScripts, version, repo metadata
README.md # this file
scripts/install.js # downloads the platform-native binary from GitHub releases
bin/phi # node shim that spawns the downloaded binary
真正的Go二进制,web UI(包括 help.md 和 changelog.md),
所有的资源都在GitHub上发布 install.js 下载。这个
二进制嵌入 web/ 目录通过 //go:embed all:web 所以它起到了作用
help.md 和 changelog.md 直接在运行时-没有单独的托管
需要的。
NPM v12安装时安全性
从npm v12开始(https://github.blog/changelog/2026-07-08-npm-install-time-security-and-gat-bypass2fa-deprecation/),
postinstall 默认情况下,脚本不再运行。这个包的 postinstall
(scripts/install.js)从GitHub版本下载平台原生Go二进制文件
-没有它, phi 不会安装。
项目范围安装
这 package.json 船的 allowScripts 自动批准脚本的条目:
"allowScripts": { "@hypernewbie/phi-code": true }
所以 npm install @hypernewbie/phi-code (或 --save)刚刚好。
全局安装(npm install -g)
没有项目 package.json 在全局模式下,所以NPM v12不能读取
白名单。npm v12+的最终用户将需要以下其中一个:
npm install -g @hypernewbie/phi-code --allow-scripts
或者坚持一次:
npm config set allow-scripts=@hypernewbie/phi-code --location=user
npm install -g @hypernewbie/phi-code
(或使用 --ignore-scripts 和运行 npx --yes @hypernewbie/phi-code 去取
按需二进制。)
可信发布(OIDC)
发布工作流程(.github/workflows/release.yml)被配置为
npm与OIDC的可信发布流程: npm-publish 工作
id-token: write 权限和呼叫 npm publish --provenance。完成
迁移:
- 在npmjs.com→package
@hypernewbie/phi-code→ 发布访问 → 信任的出版商 → 添加可信发布者:- 老板:
hypernewbie - 存储库:
phi - 工作流文件名:
release.yml
- 老板:
- 删除
NPM_TOKEN一旦你确认了一个标记的发布,Repo的秘密 仅通过OIDC就能成功发布NODE_AUTH_TOKEN: ''在 工作流临时测试)。
在完成这两项工作之前,工作流程会退回到遗留的工作 NPM_TOKEN 的秘密。