77 lines
2.6 KiB
TypeScript
77 lines
2.6 KiB
TypeScript
import { defineConfig } from 'vite';
|
||
import path from 'path';
|
||
|
||
const isDev = process.env.NODE_ENV === 'development';
|
||
// https://vitejs.dev/config/
|
||
export default defineConfig({
|
||
plugins: [],
|
||
server: {
|
||
port: 6102,
|
||
// host: '::',
|
||
proxy: {
|
||
'/api': {
|
||
target: 'http://127.0.0.1:4000',
|
||
changeOrigin: true,
|
||
},
|
||
'/api/router': {
|
||
target: 'ws://localhost:4000',
|
||
changeOrigin: true,
|
||
ws: true,
|
||
rewriteWsOrigin: true,
|
||
rewrite: (path) => path.replace(/^\/api/, '/api'),
|
||
},
|
||
},
|
||
},
|
||
// define: {
|
||
// DEV_SERVER: JSON.stringify(isDev),
|
||
// },
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(__dirname, './src'),
|
||
},
|
||
},
|
||
build: {
|
||
rollupOptions: {
|
||
// output: {
|
||
// dir: 'dist',
|
||
// format: 'esm',
|
||
// entryFileNames: (chunkInfo) => {
|
||
// // 判断当前chunk是否是从node_modules导入的
|
||
// if (chunkInfo.isEntry && chunkInfo.facadeModuleId.includes('node_modules')) {
|
||
// return 'vendor/[name].[hash].js'; // 依赖输出到vendor文件夹
|
||
// }
|
||
// return 'assets/[name].[hash].js'; // 自己的代码输出到assets文件夹
|
||
// },
|
||
// },
|
||
output: {
|
||
// chunkFileNames: (chunkInfo) => {
|
||
// // 检查该 chunk 是否来自 node_modules
|
||
// if (chunkInfo.isEntry && chunkInfo.facadeModuleId.includes('node_modules')) {
|
||
// // 提取包名,通常 node_modules 的路径第二部分是包名
|
||
// const packageName = chunkInfo.facadeModuleId.split(path.sep)[1];
|
||
// // 如果包名以 '@' 开头,处理作用域包的情况
|
||
// if (packageName.startsWith('@')) {
|
||
// const parts = packageName.split(path.sep);
|
||
// return `vendor/${parts[0]}/${parts[1]}/[name].[hash].js`;
|
||
// }
|
||
// return `vendor/${packageName}/[name].[hash].js`;
|
||
// }
|
||
// return 'assets/[name].[hash].js';
|
||
// },
|
||
manualChunks: (id) => {
|
||
// if (id.includes('node_modules')) {
|
||
// // 提取包名,适用于 node_modules 路径
|
||
// const parts = id.split(path.sep);
|
||
// const packageName = parts[parts.indexOf('node_modules') + 1];
|
||
// // 返回一个 unique chunk 名,这里以包名作为 chunk 名
|
||
// return `vendor/${packageName}`;
|
||
// }
|
||
if (id.includes('node_modules')) {
|
||
return 'vendor'; // 为node_modules下的模块指定单独的chunk名,并放在vendor目录
|
||
}
|
||
},
|
||
},
|
||
},
|
||
},
|
||
});
|