generated from duanshuwen/webapp-vue-frontend
Initial commit
This commit is contained in:
107
vite.config.js
Normal file
107
vite.config.js
Normal file
@@ -0,0 +1,107 @@
|
||||
import { defineConfig, loadEnv } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import VueSetupExtend from 'vite-plugin-vue-setup-extend'
|
||||
import AutoImport from 'unplugin-auto-import/vite'
|
||||
import { createStyleImportPlugin, VantResolve } from 'vite-plugin-style-import'
|
||||
import postCssPxToRem from 'postcss-pxtorem'
|
||||
import legacy from '@vitejs/plugin-legacy'
|
||||
import { resolve } from 'path'
|
||||
import { viteVConsole } from 'vite-plugin-vconsole'
|
||||
import visualizer from 'rollup-plugin-visualizer'
|
||||
import Components from 'unplugin-vue-components/vite'
|
||||
import { VantResolver } from 'unplugin-vue-components/resolvers'
|
||||
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig(({ mode }) => {
|
||||
const { VITE_ENV, VITE_CONSOLE } = loadEnv(mode, process.cwd())
|
||||
const isProd = VITE_ENV === 'production'
|
||||
const isVconsole = Number(VITE_CONSOLE)
|
||||
|
||||
return {
|
||||
base: isProd ? './' : './', // 是否是生产环境
|
||||
build: {
|
||||
cssCodeSplit: false,
|
||||
chunkSizeWarningLimit: 2048,
|
||||
sourcemap: isProd
|
||||
},
|
||||
esbuild: {
|
||||
drop: isProd ? ['console', 'debugger'] : undefined
|
||||
},
|
||||
plugins: [
|
||||
legacy({
|
||||
targets: ['defaults', 'not IE 11']
|
||||
}),
|
||||
vue(),
|
||||
VueSetupExtend(),
|
||||
Components({
|
||||
dts: false,
|
||||
resolvers: [VantResolver()]
|
||||
}),
|
||||
AutoImport({
|
||||
// 后续vue/vue-router的API都不需要再单独import到setup里面了
|
||||
imports: ['vue', 'vue-router'],
|
||||
// dts: 'src/auto-imports...', // 可以自定义文件生成的位置与是否生成,默认是根目录下
|
||||
dts: false
|
||||
}),
|
||||
createStyleImportPlugin({
|
||||
resolves: [VantResolve()],
|
||||
libs: [
|
||||
{
|
||||
libraryName: 'vant',
|
||||
esModule: false,
|
||||
resolveStyle: (name) => {
|
||||
return `vant/es/${name}/style`
|
||||
}
|
||||
}
|
||||
]
|
||||
}),
|
||||
viteVConsole({
|
||||
entry: [resolve('src/main.js')],
|
||||
localEnabled: isVconsole,
|
||||
enabled: isVconsole,
|
||||
config: {
|
||||
maxLogNumber: 1000,
|
||||
theme: 'light'
|
||||
}
|
||||
}),
|
||||
!isProd
|
||||
? visualizer({
|
||||
open: true,
|
||||
gzipSize: true,
|
||||
brotliSize: true
|
||||
})
|
||||
: null
|
||||
],
|
||||
resolve: {
|
||||
// 设置路径别名
|
||||
alias: {
|
||||
'@': resolve(__dirname, './src'),
|
||||
'~': resolve(__dirname, './src/assets')
|
||||
}
|
||||
},
|
||||
server: {
|
||||
hmr: true,
|
||||
port: 8080,
|
||||
host: true,
|
||||
open: true
|
||||
},
|
||||
css: {
|
||||
// css预处理器
|
||||
preprocessorOptions: {
|
||||
scss: {
|
||||
charset: false,
|
||||
additionalData: '@import "./src/assets/scss/index.scss";'
|
||||
}
|
||||
},
|
||||
|
||||
postcss: {
|
||||
plugins: [
|
||||
postCssPxToRem({
|
||||
rootValue: 37.5,
|
||||
propList: ['*']
|
||||
})
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user