SvelteKit部署至Google Cloud报错:找不到workspace/server.js模块
解决SvelteKit部署Google Cloud后找不到server.js的问题
1. 修正package.json的start脚本
Google Cloud App Engine部署Node.js应用时,会执行package.json里的start脚本,报错找不到workspace/server.js是因为脚本指向的路径不对。SvelteKit用adapter-node构建后,生产入口文件是build/index.js,修改脚本如下:
{ "scripts": { "build": "vite build", "start": "node build/index.js" } }
2. 完整配置app.yaml文件
仅设置runtime: node16不够,补充以下配置项确保App Engine正确识别和运行你的SvelteKit应用:
runtime: nodejs16 env: standard # 处理所有请求路由 handlers: - url: /.* script: auto # 设置生产环境变量 env_variables: NODE_ENV: production
各配置项说明:
env: standard:使用App Engine标准环境,适配大多数Node.js应用场景handlers:url: /.*匹配所有请求路径,script: auto让App Engine自动将请求转发到你的Node.js服务器env_variables:设置NODE_ENV为production,确保SvelteKit以生产模式运行
3. 部署前的关键准备
- 安装正确的适配器:确保项目使用
@sveltejs/adapter-node(默认的adapter-auto可能不兼容Node.js部署),修改svelte.config.js:
import adapter from '@sveltejs/adapter-node'; import { vitePreprocess } from '@sveltejs/kit/vite'; const config = { preprocess: vitePreprocess(), kit: { adapter: adapter() } }; export default config;
- 执行构建:运行
npm run build,确认项目根目录生成build文件夹,里面包含index.js等生产文件 - 依赖检查:确保
package.json的dependencies包含所有生产必需的包(devDependencies里的包部署时会被忽略)
4. 部署命令
完成上述配置后,通过Google Cloud CLI执行部署:
gcloud app deploy
内容的提问来源于stack exchange,提问作者Wakgood
相关产品推荐
相关产品推荐

