代码拉取完成,页面将自动刷新
同步操作将从 张坤/Vite + Ts + Vue3 - template -- 模板 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
// 导入 vite 插件
import { defineConfig, loadEnv, ConfigEnv } from "vite";
// 导入 vue 插件
import vue from "@vitejs/plugin-vue";
// 导入自动导入插件
import AutoImport from "unplugin-auto-import/vite";
// 导入自动注册组件的插件
import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
//gzip 只是前端将压缩后的文件传输给服务器,需要设置服务器支持gzip
import viteCompression from "vite-plugin-compression";
// 导入path 用于设置别名
import * as path from "path";
import { randomLetterPlugin } from "./vite-plugins/random-letter-plugin";
export default defineConfig((mode: ConfigEnv) => {
// 导入 .env 环境变量
const env = loadEnv(mode.mode, process.cwd());
return {
// 配置打包后的相对路径
base: "./",
//配置别名
resolve: {
// 需要在tsconfig.json的compilerOptions中配置paths
alias: {
"@": path.resolve("./src"), // @代替src
"~": path.resolve("./src/components"), // @代替src/components
"-": path.resolve("./src/api"), // @代替src/api
},
extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
},
// plugins插件
plugins: [
vue(), //vue
viteCompression(), //gzip
randomLetterPlugin(), // 定制插件
AutoImport({
//plus api 自动引入
resolvers: [ElementPlusResolver()],
//引入vue 自动注册api插件
imports: ["vue", "vue-router", "pinia"], // 配置需要自动导入的库
dts: "./src/types/auto-import.d.ts", // 自动引入生成api的地址
eslintrc: {
enabled: false, // 是否开启eslint
filepath: "./.eslintrc-auto-import.json", // eslint配置文件地址
globalsPropValue: true, // 是否开启全局变量
},
}),
Components({
//plus 组件 自动引入
resolvers: [ElementPlusResolver()],
// 配置需要将哪些后缀类型的文件进行自动按需引入
extensions: [".js", ".ts", ".tsx", ".jsx"],
dts: "./src/types/components.d.ts", //自动引入生成的组件的地址
}),
],
// 打包配置
build: {
outDir: "dist",
assetsDir: "assets", //指定静态资源存放路径
sourcemap: false, //是否构建source map 文件
minify: "terser", // 混淆器,terser构建后文件体积更小
terserOptions: {
compress: {
//生产环境时移除console
drop_console: true,
drop_debugger: true,
pure_funcs: ["console.log"],
},
},
rollupOptions: {
output: {
compact: true,
entryFileNames: "static/js/[name]-[hash].js",
chunkFileNames: "static/js/[name]-[hash].js",
assetFileNames: "static/[ext]/[name].[ext]",
},
},
},
// 跨域
server: {
//使用IP能访问
host: "0.0.0.0",
//端口号
port: env.VITE_PORT as unknown as number,
//是否自动打开浏览器
open: env.VITE_OPEN as unknown as boolean,
// 热更新
hmr: true,
//设为 true 时若端口已被占用则会直接退出,而不是尝试下一个可用端口
strictPort: false,
//自定义代理规则
proxy: {
// 选项写法
"/api": {
// 1 目标路径 这里相当于公共的地址
target: "https://restapi.amap.com/v3",
//2 允许跨域
changeOrigin: true,
// 3 重写路径
rewrite: (path: string) => path.replace(/^\/api/, ""),
},
},
},
};
});
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。