• astro
  • termux
  • android
发布于
更新于

在 Termux 环境中安装 astro


关于 Astro 在 Termux (Android arm64 EL) 上的支持情况

如果我尝试在 Termux 中运行 npm install astro,会产生以下报错。

➜  algosul-blog git:(main) npm install astro
npm warn deprecated wrangler@4.56.0: Version 4.55.0 and 4.56.0 can 
incorrectly automatically delegate 'wrangler deploy' to 'opennextjs
-cloudflare'. Use an older or newer version.
npm error code 1
npm error path /data/data/com.termux/files/home/workspace/algosul-b
log/node_modules/workerd
npm error command failed
npm error command sh -c node install.js
npm error /data/data/com.termux/files/home/workspace/algosul-blog/n
ode_modules/workerd/install.js:43
npm error     throw new Error(`Unsupported platform: ${platformKey}
`);
npm error           ^
npm error
npm error Error: Unsupported platform: android arm64 LE
npm error     at pkgAndSubpathForCurrentPlatform (/data/data/com.te
rmux/files/home/workspace/algosul-blog/node_modules/workerd/install
.js:43:11)
npm error     at checkAndPreparePackage (/data/data/com.termux/file
s/home/workspace/algosul-blog/node_modules/workerd/install.js:216:2
8)
npm error     at Object.<anonymous> (/data/data/com.termux/files/ho
me/workspace/algosul-blog/node_modules/workerd/install.js:245:1)
npm error     at Module._compile (node:internal/modules/cjs/loader:
1829:14)
npm error     at Module._extensions..js (node:internal/modules/cjs/
loader:1969:10)
npm error     at Module.load (node:internal/modules/cjs/loader:1552
:32)
npm error     at Module._load (node:internal/modules/cjs/loader:135
4:12)
npm error     at wrapModuleLoad (node:internal/modules/cjs/loader:2
55:19)
npm error     at Module.executeUserEntryPoint [as runMain] (node:in
ternal/modules/run_main:154:5)
npm error     at node:internal/main/run_main_module:33:47
npm error
npm error Node.js v25.8.2
npm error A complete log of this run can be found in: /data/data/co
m.termux/files/home/.npm/_logs/2026-04-08T17_17_49_027Z-debug-0.log

可能的原因

  • workerd 库不支持 Android 系统

解决方案

✅ 已解决:移除 Cloudflare Workers 依赖

在 Android Termux 上无法使用 Cloudflare Workers,因为 workerd 包不支持 Android 平台。

修改步骤:

  1. 修改 astro.config.mjs - 移除 Cloudflare adapter:
// 移除 import cloudflare from "@astrojs/cloudflare";
// 移除 adapter: cloudflare({ ... })
  1. 修改 package.json - 移除 Cloudflare 相关依赖:
// 移除:
// - @astrojs/cloudflare
// - wrangler
// - cloudflare 配置对象
// - cf-typegen、deploy、preview 脚本
  1. 重新安装依赖
rm -rf node_modules package-lock.json
npm install

结果:

  • ✅ Astro 5.16.9 成功安装
  • ✅ 可以在 Termux 上运行 npm run dev
  • ✅ 可以构建项目:npm run build
  • ✅ 可以预览:npm run preview

注意事项

  • 此项目现在以 静态站点 方式运行,而非 Cloudflare Workers
  • 部署时需要使用静态托管服务(如 GitHub Pages、Vercel、Netlify)
  • 所有脚本都已更新为兼容 Node.js 环境