wayne-cli-tools
Version:
一个react脚手架(vite,nextjs)
104 lines (101 loc) • 2.6 kB
text/typescript
import { defineConfig, loadEnv, ConfigEnv, UserConfig } from "vite";
import { resolve } from "path";
import react from "@vitejs/plugin-react";
import { visualizer } from "rollup-plugin-visualizer";
import viteCompression from "vite-plugin-compression";
import { wrapperEnv } from "./src/utils/getEnv";
import { createHtmlPlugin } from "vite-plugin-html";
// https://vitejs.dev/config/
export default defineConfig((configEnv: ConfigEnv): UserConfig => {
const env = loadEnv(configEnv.mode, process.cwd());
console.log("======env:", env);
const viteEnv = wrapperEnv(env);
return {
define: {
"process.env": process.env
},
// alias config
resolve: {
alias: {
"@": resolve(__dirname, "./src")
}
},
// global css
css: {
preprocessorOptions: {
less: {
// modifyVars: {
// "primary-color": "#1DA57A",
// },
javascriptEnabled: true,
additionalData: `@import "@/styles/var.less";`
}
}
},
server: {
host: "0.0.0.0", // 服务器主机名,如果允许外部访问,可设置为"0.0.0.0"
port: viteEnv.VITE_PORT,
open: viteEnv.VITE_OPEN,
cors: true,
// https: false,
proxy: {
"/website": {
// target: "http://121.36.46.110:16924",
// target: "https://council.greendev.org.cn",
target: "http://121.36.46.110:16891",
changeOrigin: true,
rewrite: path => path.replace(/^\/website/, "/website")
},
"/applet": {
target: "http://121.36.46.110:16922",
// target: " http://192.168.1.107:16921",
changeOrigin: true,
rewrite: path => path.replace(/^\/applet/, "/applet")
}
}
},
plugins: [
react(),
createHtmlPlugin({
inject: {
data: {
title: viteEnv.VITE_GLOB_APP_TITLE
}
}
}),
// * 是否生成包预览
viteEnv.VITE_PREVIEW_REPORT &&
visualizer({
open: true, //注意这里要设置为true,否则无效
filename: "preview.html",
gzipSize: true,
brotliSize: true
}),
// * gzip compress
viteEnv.VITE_BUILD_GZIP &&
viteCompression({
verbose: true,
disable: false,
threshold: 10240,
algorithm: "gzip",
ext: ".gz"
})
],
esbuild: {
pure: viteEnv.VITE_DROP_CONSOLE ? ["console.log", "debugger"] : []
},
// build configure
build: {
outDir: "dist",
minify: "esbuild",
rollupOptions: {
output: {
// Static resource classification and packaging
chunkFileNames: "assets/js/[name]-[hash].js",
entryFileNames: "assets/js/[name]-[hash].js",
assetFileNames: "assets/[ext]/[name]-[hash].[ext]"
}
}
}
};
});