import {
defineConfig,
loadEnv
} from 'vite'
import vue from '@vitejs/plugin-vue'
import {
resolve
} from 'path'
/* 一个按需自动导入Vue/Vue Router等官方Api的插件 */
import AutoImport from 'unplugin-auto-import/vite'
/* 解决vue3下 script setup语法糖 下 ,手动设置组件name不方便的问题 */
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
/* 打包体积分析插件 */
import {
visualizer
} from 'rollup-plugin-visualizer'
/* 打包压缩 */
import viteCompression from 'vite-plugin-compression'
import legacy from '@vitejs/plugin-legacy';
import Components from 'unplugin-vue-components/vite';
import {
AntDesignVueResolver
} from 'unplugin-vue-components/resolvers';
export const r = (...args) => resolve(__dirname, '.', ...args)
export default defineConfig(({
command,
mode
}) => {
const envConfig = loadEnv(mode, './')
return {
plugins: [
vue(),
viteCompression(),
vueSetupExtend(),
AutoImport({
imports: ['vue'],
dirs: ['./src/utils/permission'],
dts: r('src/auto-imports.d.ts')
}),
/* 1.下面的注释打开,荣耀平板可以用,注释掉小米联想平板可以用 */
legacy({
// targets:['chrome 52', "defaults" ,"ie 11"], // 需要兼容的目标列表,可以设置多个
// targets: ["chrome 80", "defaults", "not IE 11"],targets: ['defaults', "ie >= 11", 'chrome 52'], // 需要兼容的目标列表,可以设置多个
cssTarget: ["chrome52"],
modernPolyfills: true,
renderLegacyChunks: true,
additionalLegacyPolyfills: ['regenerator-runtime/runtime'], // 面向IE11时需要此插件
polyfills: [
'es.symbol',
'es.promise',
'es.promise.finally',
'es/map',
'es/set',
'es.array.filter',
'es.array.for-each',
'es.array.flat-map',
'es.object.define-properties',
'es.object.define-property',
'es.object.get-own-property-descriptor',
'es.object.get-own-property-descriptors',
'es.object.keys',
'es.object.to-string',
'web.dom-collections.for-each',
'esnext.global-this',
'esnext.string.match-all'
]
}),
visualizer(),
Components({
resolvers: [
AntDesignVueResolver({
importStyle: false, // css in js
}),
],
})
],define: {
//'process.env': {}
'process.env.NODE_ENV': JSON.stringify('production')
},
server: {
host: '0.0.0.0',
port: envConfig.VITE_PORT,
hmr: true, //开启热更新
proxy: {
'/api': {
target: envConfig.VITE_APP_API,
ws: false,
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, '')
}
},
},
productionSourceMap: false,
/*打包的时候不输出map文件,减少大量体积*/
build: {
assetsPublicPath: './',
target: ['es2015', "chrome52"],
/* 2.下面的注释打开,荣耀平板可以用,注释掉小米联想平板可以用 */
chunkSizeWarningLimit: 1000,
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString();
}
}
}
},
minify:'terser'
},
base: './',
// publicPath: './',/*配置打包后的资源路径*/
resolve: {
alias: {
'@': `${resolve(__dirname, 'src')}`,
'~': `${resolve(__dirname, './')}`,
},
},
css: {
// css预处理器
preprocessorOptions: {
less: {
additionalData: `@import "${resolve(__dirname, 'src/assets/style/global.less')}";`,
modifyVars: {
'primary-color': '#000000'
},
}
}
}
}
})
uni-app5 app打包,vue3开发vite.config.js的配置
转载请注明出处或者链接地址:https://www.qianduange.cn//article/4979.html
相关文章
-
VUE开发环境搭建
-
npm安装-详细教程
-
深度选择器——vue或react中修改组件样式的方法
-
> vue@0.1.0 serve > vue-cli-service serve ‘vue-cli-service‘ 不是内部或外部命令,也不是可运行的程序 或解决“vue“不是内部或外部命令问题
-
vue3 element-plus,在el-dialog中使用v-loading无效的解决方法
-
vscode搭建vue环境
-
Vue3 Vite项目启动报错:Feature flag __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ is not explicitly defined
-
vue使用fetchEventSource实现chatgpt打字机效果
-
Vue 3 中的 $emit 函数是如何工作的
-
【优质书籍推荐】Vue.js Node.js全栈开发实战
发布的文章
用js生成小米商城
2024-04-27 21:04:59
网页汇率计算器vue代码
2024-04-26 13:04:44
vue3绘制内容自动无缝滚动表格
2024-04-25 16:04:07
npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.
2024-04-20 17:04:38
vue里使用样式color: var(--Editor-text),已经定义了--Editor-text,但是却显示变量--Editor-text未定义,为啥
2024-04-25 08:04:19
wangEditor设置初始文字颜色
2024-04-23 15:04:38
Golang 使用 Gin 框架接收 HTTP Post 请求体中的 JSON 数据
2024-04-23 22:04:53
Python读写Json文件
2024-04-23 22:04:19
【头歌】——数据分析与实践-python-网络爬虫-Scrapy爬虫基础-网页数据解析-requests 爬虫-JSON基础
2024-04-23 22:04:19
ObjectMapper转化对象常用方法(转LIst、Map,以及Type、JavaType、constructType的学习)
2024-04-23 22:04:02
大家推荐的文章