代码拉取完成,页面将自动刷新
/*
* @Description:
* @Version: 1.668
* @Autor: 地虎降天龙
* @Date: 2023-10-16 10:53:09
* @LastEditors: 地虎降天龙
* @LastEditTime: 2025-04-17 18:19:25
*/
// import { resolve } from 'path';
import { join } from 'path'
import { defineBuildConfig } from '@fesjs/fes'
import { templateCompilerOptions } from '@tresjs/core'
// eslint-disable-next-line import/no-unresolved
import UnoCSS from 'unocss/vite'
// eslint-disable-next-line import/no-extraneous-dependencies
import glsl from 'vite-plugin-glsl'
import javascriptObfuscator from 'vite-plugin-javascript-obfuscator'
const timeStamp = new Date().getTime()
const combinedIsCustomElement = (tag) => tag.startsWith('iconify-icon') || templateCompilerOptions.template.compilerOptions.isCustomElement(tag)
export default defineBuildConfig({
mountElementId: 'tvt-app',
title: 'TvT.js',
publicPath: './', // './' 若在线部署用于生产环境 且 是使用qiankun微前端时,需要配置base为主应用地址 https://cos.icegl.cn/qiankun/tvt/
access: {
roles: {
admin: ['*'],
manager: ['/'],
},
},
layout: {
navigation: null,
},
enums: {
status: [
['0', '无效的'],
['1', '有效的'],
],
},
qiankun: {
micro: {
useDevMode: true,
},
},
//add by 地虎降天龙
viteVuePlugin: {
template: {
compilerOptions: {
isCustomElement: (tag) => combinedIsCustomElement(tag),
},
},
},
viteOption: {
plugins: [
UnoCSS({
/* options */
}),
glsl({
warnDuplicatedImports: false, // 禁用重复导入警告
}),
process.env.NODE_ENV === 'production' &&
javascriptObfuscator({
apply: 'build',
include: [/src\/.*\.js$/],
exclude: ['node_modules/**', '!node_modules/three/**', '!node_modules/@tresjs/core/**', '!node_modules/@tresjs/cientos/**',
/[\\/]@alienkitty[\\/]/,
],
options: {
optionsPreset: 'high-obfuscation', //'default',
debugProtection: true,
disableConsoleOutput: true,
controlFlowFlattening: false, // 🚀 关闭控制流混淆,避免 Babel 解析错误
identifierNamesGenerator: 'hexadecimal', // 仅修改变量名,不影响语法结构
reservedStrings: ['suspenseLayout.vue'],
compact: true,
stringArray: true,
stringArrayThreshold: 0.75,
stringArrayEncoding: ['rc4'],
splitStrings: false,
transformObjectKeys: false,
// ... [See more options](https://github.com/javascript-obfuscator/javascript-obfuscator)
},
}),
],
build: {
target: 'esnext', // 或者 'es2020' 以支持 BigInt
chunkSizeWarningLimit: 1000, // 单位为KB
rollupOptions: {
output: {
manualChunks(id) {
// 自定义拆分策略,例如将特定的第三方库拆分为单独的 chunk
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0]
}
},
format: 'es',
chunkFileNames: `js/[name].[hash]${timeStamp}.js`,
entryFileNames: `js/[name].[hash]${timeStamp}.js`,
assetFileNames: `[ext]/[name].[hash]${timeStamp}.[ext]`,
name: 'TvT.js',
},
},
sourcemap: false,
minify: process.env.NODE_ENV === 'production' ? 'terser' : false,
},
// 全局 css 注册
css: {
preprocessorOptions: {
scss: {
javascriptEnabled: true,
additionalData: `@import "src/plugins/goView/lib/scss/style.scss";`,
},
},
},
server: {
headers: {
'Access-Control-Allow-Origin': '*',
},
host: '0.0.0.0',
proxy: {
'/resource.cos': {
target: 'https://opensource.cdn.icegl.cn',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/resource.cos/, ''),
},
},
},
},
alias: { PLS: join(__dirname, './src/plugins') },
// { find: 'pls', replacement: resolve(__dirname, './src/plugins') },
// { '@': join(__dirname, '/src') }
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。