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
相关文章
-
运行npm error code ENOENTnpm error syscall opennpm error path C:\Users\ultra\Desktop\Vue-Project\pac
-
前端提高篇(102):jQuery高级方法callbacks、deferred
-
vue前端页面弹出红色报错遮罩层 Uncaught runtime errors:at handleError (webpack-internal:///./node_modules/webpack
-
html 无序标签有序标签及表单
-
CSS3新增属性(15个案例 代码 效果图 素材)
-
基于CSS3媒体查询的响应式旅游网站设计与实现-计算机毕设 附源码 12755
-
vue3中getCurrentInstance不推荐使用以及在<script setup>中获取全局内容(三种方式)
-
vue选项式和组合式区别
-
每天10个vue面试题(七)
-
Vue 2 中的 `$set` 方法详解
发布的文章
运行npm error code ENOENTnpm error syscall opennpm error path C:\Users\ultra\Desktop\Vue-Project\pac
2024-08-27 09:08:17
前端提高篇(102):jQuery高级方法callbacks、deferred
2024-05-09 11:05:34
解决npm install 报错 “npm err code 1“
2024-06-06 10:06:47
【常见错误】npm ERR! code CERT_HAS_EXPIRED & errno CERT_HAS_EXPIRED
2024-04-22 09:04:34
vue前端页面弹出红色报错遮罩层 Uncaught runtime errors:at handleError (webpack-internal:///./node_modules/webpack
2024-03-29 15:03:20
npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.
2024-04-20 17:04:38
JQuery中的load()、$
2024-05-10 08:05:15
《WEB前端框架开发技术》HTML5响应式旅游景区网站——榆林子州HTML CSS JavaScript (1)
2024-10-30 21:10:12
大家推荐的文章