123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- import { resolve } from 'node:path'
- import UnoCSS from 'unocss/vite'
- import { defineConfig, loadEnv } from 'vite'
- import legacy from '@vitejs/plugin-legacy'
- import vue2 from '@vitejs/plugin-vue2'
- import { ViteEjsPlugin } from 'vite-plugin-ejs'
- import { viteExternalsPlugin } from 'vite-plugin-externals'
- import { legacyQiankun } from 'vite-plugin-legacy-qiankun'
- // https://github.com/iamxiyang/vite-plugin-html-redirect
- import ViteHtmlRedirect from 'vite-plugin-html-redirect'
- import { useServerProxy } from '../../configs/proxy/dev-proxy'
- const env = loadEnv(process.env.NODE_ENV, process.cwd())
- const baseCDN = {
- css: [
- 'https://cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/style.min.css'
- ],
- js: [
- 'https://cdn-common.jianyu360.com/cdn/lib/echarts/4.8.0/echarts.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/v-charts/1.19.0/index.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/pdfjs-dist/2.1.266/build/pdf.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/pdfjs-dist/2.1.266/web/pdf_viewer.js'
- // 'https://cdn-common.jianyu360.com/cdn/lib/jquery/3.5.1/jquery.min.js', // 标签上需要添加ignore
- ]
- }
- const prodCDN = {
- js: [
- 'https://cdn-common.jianyu360.com/cdn/lib/vue/2.7.16/vue.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/vue-router/3.6.5/vue-router.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/vuex/3.6.2/vuex.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/axios/1.6.7/axios.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/lodash/4.17.21/lodash.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/dayjs/1.11.4/dayjs.min.js',
- 'https://cdn-common.jianyu360.com/cdn/lib/js-cookie/2.2.1/js.cookie.min.js'
- ]
- }
- function getCDN() {
- const isDev = process.env.NODE_ENV === 'development'
- if (isDev) {
- return baseCDN
- }
- else {
- const allCDN = Object.assign({}, baseCDN)
- allCDN.css = allCDN.css.concat(prodCDN.css || [])
- allCDN.js = allCDN.js.concat(prodCDN.js || [])
- return allCDN
- }
- }
- function getExternals() {
- const isDev = process.env.NODE_ENV === 'development'
- if (isDev) {
- return {}
- }
- return {
- 'vue': 'Vue',
- 'vue-router': 'VueRouter',
- 'vuex': 'Vuex',
- 'axios': 'axios',
- 'lodash': '_',
- 'echarts': 'echarts',
- 'v-charts': 'VeIndex',
- // 解决画像visualMap不显示问题
- // echarts: 'echarts',
- // moment: 'moment',
- 'jquery': '$'
- }
- }
- export default defineConfig({
- base: env.VITE_APP_BASE_PUBLIC,
- build: {
- outDir: '../../dist/page_big_pc',
- emptyOutDir: true,
- rollupOptions: {
- external: [
- '/common-module/chart-module/js/chart-common.js',
- '/qr?url=/stl/wxSubscrbePage'
- ],
- output: {
- manualChunks(id) {
- if (id.includes('node_modules/element-ui')) {
- return 'ElementUI'
- }
- }
- }
- }
- },
- optimizeDeps: {
- exclude: ['/common-module/chart-module/js/chart-common.js']
- },
- plugins: [
- UnoCSS(),
- vue2(),
- ViteEjsPlugin({
- cdn: getCDN(),
- assets: {
- version: Date.now()
- }
- }),
- ViteHtmlRedirect(),
- // eslintPlugin(),
- viteExternalsPlugin(getExternals()),
- legacy({
- targets: ['ie >= 11'],
- additionalLegacyPolyfills: ['regenerator-runtime/runtime']
- }),
- legacyQiankun({
- name: 'bigMemberSubApp',
- devSandbox: false
- })
- // vitePluginRequire()
- ],
- resolve: {
- alias: [
- // {
- // find: /^~/,
- // replacement: "",
- // },
- {
- find: '~@',
- replacement: resolve(__dirname, 'src')
- },
- {
- find: '@',
- replacement: resolve(__dirname, 'src')
- }
- ],
- extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
- },
- css: {
- preprocessorOptions: {
- scss: {
- silenceDeprecations: ['legacy-js-api', 'import'], // 静默所有相关警告
- additionalData: `
- @import "@/assets/style/_mixin.scss";
- @import "@/assets/style/_variables.scss";
- `
- }
- }
- },
- server: {
- port: 8081,
- proxy: useServerProxy('web'),
- host: '0.0.0.0'
- }
- })
|