如何将SvelteKit构建产物以服务器模式运行?
解决SvelteKit构建产物本地服务器运行问题
你的问题出在使用了@sveltejs/adapter-auto,这个适配器是为Vercel、Netlify等平台自动适配的,不会生成可直接用Node.js本地运行的生产构建产物。要本地运行构建后的应用,需要切换到adapter-node,步骤如下:
- 安装Node适配器
npm install @sveltejs/adapter-node --save-dev
- 修改
svelte.config.js,替换适配器配置
将原来的adapter-auto替换为adapter-node:
import adapter from '@sveltejs/adapter-node'; import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; /** @type {import('@sveltejs/kit').Config} */ const config = { preprocess: vitePreprocess(), kit: { adapter: adapter() } }; export default config;
- 重新执行构建
npm run build
- 运行生产构建产物
构建完成后会生成build文件夹,直接运行以下命令即可启动服务器:
node build
为什么直接运行.svelte-kit/build/server.js不行?
.svelte-kit文件夹是SvelteKit的中间构建产物,并不是最终的生产就绪代码。不同的适配器会把中间产物打包成对应平台的可运行代码,adapter-auto不会生成适合本地Node.js环境的产物,因此直接运行这个文件会报错。
内容的提问来源于stack exchange,提问作者izmaylovdev
相关产品推荐
相关产品推荐

