fix(dev): 本地 API 默认端口改为 3100 避开 Windows 保留段

Hyper-V 常保留 2960-3059,3000 会 EACCES;ensure-port-free 与 Vite 代理从 apps/api/.env 读取 PORT
This commit is contained in:
2026-06-23 15:10:43 +08:00
parent b01213f637
commit 43fa8ebef0
6 changed files with 42 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import { resolveApiDevTarget } from '../../scripts/dev-api-target.mjs';
import { visualizer } from 'rollup-plugin-visualizer';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
@@ -8,6 +9,7 @@ import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
export default defineConfig(({ mode }) => {
const analyze = process.env.ANALYZE === '1' || mode === 'analyze';
const apiTarget = resolveApiDevTarget();
return {
plugins: [
@@ -75,8 +77,8 @@ export default defineConfig(({ mode }) => {
server: {
port: 5174,
proxy: {
'/api': { target: 'http://localhost:3000', changeOrigin: true },
'/uploads': { target: 'http://localhost:3000', changeOrigin: true },
'/api': { target: apiTarget, changeOrigin: true },
'/uploads': { target: apiTarget, changeOrigin: true },
},
},
};

View File

@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"build": "nest build",
"dev": "node ../../scripts/ensure-port-free.mjs 3000 && nest start --watch",
"dev": "node ../../scripts/ensure-port-free.mjs && nest start --watch",
"start": "node dist/main",
"test": "jest",
"test:watch": "jest --watch",

View File

@@ -1,6 +1,9 @@
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import { resolveApiDevTarget } from '../../scripts/dev-api-target.mjs';
const apiTarget = resolveApiDevTarget();
export default defineConfig({
plugins: [vue()],
@@ -37,8 +40,8 @@ export default defineConfig({
server: {
port: 5173,
proxy: {
'/api': { target: 'http://localhost:3000', changeOrigin: true },
'/uploads': { target: 'http://localhost:3000', changeOrigin: true },
'/api': { target: apiTarget, changeOrigin: true },
'/uploads': { target: apiTarget, changeOrigin: true },
},
},
});