You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SvelteKit:如何在Node构建时指定端口号?

解决SvelteKit Node适配器指定端口的问题

针对Windows Server环境下运行多个SvelteKit应用时的端口冲突问题,以下是几种可行的解决方法:

方法1:Windows命令行临时指定端口

Windows CMD/PowerShell不支持类Unix的PORT=4000 node build写法,需改用对应环境变量设置方式:

  • CMD环境:
    set PORT=4000 && node build
    
  • PowerShell环境:
    $env:PORT=4000; node build
    

方法2:硬编码端口到配置文件(固定部署场景)

直接修改项目的svelte.config.js,在Node适配器配置中指定端口:

import adapter from '@sveltejs/adapter-node';

export default {
  kit: {
    adapter: adapter({
      port: 4000 // 直接设置目标端口
    })
  }
};

修改后重新构建项目,启动时将自动使用指定端口。

方法3:正确通过.env文件加载自定义端口

之前配置被忽略可能是未正确加载.env文件,调整步骤如下:

  1. 项目根目录创建.env文件:
    CUSTOM_PORT=4000
    
  2. 修改svelte.config.js,确保读取自定义环境变量:
    import adapter from '@sveltejs/adapter-node';
    import { config } from 'dotenv';
    
    // 加载.env文件内容
    config();
    
    export default {
      kit: {
        adapter: adapter({
          port: process.env.CUSTOM_PORT || 3000 // 优先用自定义端口,默认3000
        })
      }
    };
    
  3. 先安装依赖(若未安装):npm install dotenv,再启动项目:node build

方法4:用PM2管理多应用进程(推荐长期部署)

如果需要稳定运行多个应用,PM2可以更便捷地管理端口和进程:

  1. 安装PM2:npm install pm2 -g
  2. 为项目创建ecosystem.config.js配置文件:
    module.exports = {
      apps: [
        {
          name: 'svelte-app-1',
          script: './build',
          env: {
            PORT: 3000
          }
        },
        {
          name: 'svelte-app-2',
          script: './build',
          env: {
            PORT: 4000
          }
        }
      ]
    };
    
  3. 启动所有应用:pm2 start ecosystem.config.js

内容的提问来源于stack exchange,提问作者Sean O

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:20:09