cloudflare worker 怎么准备好 pnpm 管理器?
ci-info
帮我推荐一个 node 库,实现对 Linux 环境的判断。判断当前环境是 vercel、github workflow、还是 cloudflare worker。
在 cloudflare worker 内,我想部署一个 vite 项目,但是写的 preinstall 脚本没办法在 cloudflare worker 内运行。
json
{
"scripts": {
"preinstall": "npm run corepack:pnpm && npx only-allow pnpm",
"corepack:pnpm": "corepack enable && corepack install"
}
}
在安装前,没办法先准备好 pnpm,报错如下:
cloudflare worker 的报错
log
2025-06-29T11:09:49.363Z Initializing build environment...
2025-06-29T11:09:56.440Z Success: Finished initializing build environment
2025-06-29T11:09:56.590Z Cloning repository...
2025-06-29T11:09:49.363Z Initializing build environment...
2025-06-29T11:09:56.440Z Success: Finished initializing build environment
2025-06-29T11:09:56.590Z Cloning repository...
2025-06-29T11:09:59.617Z Detected the following tools from environment: nodejs@22.14.0, pnpm@9.15.0
2025-06-29T11:09:59.617Z Installing nodejs 22.14.0
2025-06-29T11:10:07.331Z Installing project dependencies: bun install
2025-06-29T11:10:07.488Z bun install v1.2.15 (df017990)
2025-06-29T11:10:07.521Z Resolving dependencies
2025-06-29T11:10:17.478Z Resolved, downloaded and extracted [3452]
2025-06-29T11:10:18.611Z Saved lockfile
2025-06-29T11:10:18.611Z
2025-06-29T11:10:18.611Z $ bun run corepack:pnpm && bun x only-allow pnpm
2025-06-29T11:10:18.617Z $ corepack enable && corepack install
2025-06-29T11:10:18.946Z Adding pnpm@9.15.0 to the cache...
2025-06-29T11:10:19.075Z ╔═════════════════════════════════════════════════════════════╗
2025-06-29T11:10:19.075Z ║ ║
2025-06-29T11:10:19.075Z ║ Use "pnpm install" for installation in this project. ║
2025-06-29T11:10:19.076Z ║ ║
2025-06-29T11:10:19.076Z ║ If you don't have pnpm, install it via "npm i -g pnpm". ║
2025-06-29T11:10:19.076Z ║ For more details, go to https://pnpm.js.org/ ║
2025-06-29T11:10:19.076Z ║ ║
2025-06-29T11:10:19.076Z ╚═════════════════════════════════════════════════════════════╝
2025-06-29T11:10:19.080Z error: preinstall script from "@01s-11comm/root" exited with 1
2025-06-29T11:10:19.114Z Failed: error occurred while installing tools or dependencies
还没有试过 ci-info 来做控制。之前的处理方案很保守,是手动的移除掉 preinstall 钩子,才勉强实现了 cloudflare worker 部署 vite 项目。