117 lines
3.2 KiB
JavaScript
117 lines
3.2 KiB
JavaScript
import AutoImport from 'unplugin-auto-import/vite'
|
|
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'
|
|
import Components from 'unplugin-vue-components/vite'
|
|
import { defineConfig } from 'vite'
|
|
import Uni from '@dcloudio/vite-plugin-uni'
|
|
import UniKuRoot from '@uni-ku/root'
|
|
import { resolve } from 'node:path'
|
|
import UnoCSS from 'unocss/vite'
|
|
|
|
// 获取当前时间戳
|
|
const timestamp = new Date().getTime()
|
|
|
|
export default defineConfig({
|
|
envDir: './env', // 自定义env目录
|
|
resolve: {
|
|
alias: [
|
|
{
|
|
find: '@',
|
|
replacement: resolve(process.cwd(), 'src'),
|
|
},
|
|
{
|
|
find: '@/static',
|
|
replacement: resolve(__dirname, 'src/static'),
|
|
},
|
|
],
|
|
},
|
|
server: {
|
|
host: '0.0.0.0', // 监听所有网络接口
|
|
port: 2367,
|
|
// 选项写法
|
|
proxy: {
|
|
'/pag': {
|
|
target: 'https://cdn.tmui.design',
|
|
changeOrigin: true,
|
|
rewrite: (path) => path.replace(/^\/api/, '/api'),
|
|
},
|
|
},
|
|
},
|
|
plugins: [
|
|
Uni(),
|
|
UniKuRoot(),
|
|
UnoCSS(),
|
|
AutoImport({
|
|
imports: [
|
|
'vue',
|
|
{
|
|
'naive-ui': [
|
|
'useDialog',
|
|
'useMessage',
|
|
'useNotification',
|
|
'useLoadingBar',
|
|
],
|
|
},
|
|
],
|
|
}),
|
|
Components({
|
|
resolvers: [NaiveUiResolver()],
|
|
}),
|
|
],
|
|
build: {
|
|
rollupOptions: {
|
|
output: {
|
|
entryFileNames(chunkInfo) {
|
|
return `static/js/${chunkInfo.name}.${timestamp}.js`
|
|
},
|
|
//需要注释掉 @dcloudio/uni-h5-vite/dist/plugin/config.js 中的同名方法,不然不会生效
|
|
chunkFileNames: (chunkInfo) => {
|
|
const facadeModuleId = chunkInfo.facadeModuleId
|
|
? chunkInfo.facadeModuleId.split('/')
|
|
: []
|
|
//console.log(facadeModuleId);
|
|
if (chunkInfo.facadeModuleId?.length) {
|
|
const fileName = `pages-${
|
|
facadeModuleId[facadeModuleId.length - 2]
|
|
}-${facadeModuleId[facadeModuleId.length - 1]}`
|
|
console.log('正在打包' + fileName)
|
|
return `static/js/${fileName}.${timestamp}.js`
|
|
} else {
|
|
console.log('正在打包', `static/js/[name].${timestamp}.js`)
|
|
return `static/js/[name].${timestamp}.js`
|
|
}
|
|
},
|
|
// 资源文件像 字体,图片等
|
|
assetFileNames: (assetInfo) => {
|
|
if (
|
|
assetInfo.name &&
|
|
assetInfo.type === 'asset' &&
|
|
/\.(jpe?g|png|gif|svg)$/i.test(assetInfo.name)
|
|
) {
|
|
return 'static/images/[name].[hash].[ext]'
|
|
}
|
|
if (
|
|
assetInfo.name &&
|
|
assetInfo.type === 'asset' &&
|
|
/\.(ttf|woff|woff2|eot)$/i.test(assetInfo.name)
|
|
) {
|
|
return 'static/fonts/[name].[hash].[ext]'
|
|
}
|
|
return 'static/[ext]/[name]-[hash].[ext]'
|
|
},
|
|
},
|
|
},
|
|
},
|
|
css: {
|
|
extract: {
|
|
// css重构 打包编译后的css文件名称,添加时间戳
|
|
filename: `css/[name].${timestamp}.css`,
|
|
chunkFilename: `css/[name].${timestamp}.css`,
|
|
},
|
|
preprocessorOptions: {
|
|
scss: {
|
|
additionalData: `@import "@/static/css/color.scss";`,
|
|
},
|
|
},
|
|
},
|
|
})
|