16 changed files with 1651 additions and 2343 deletions
@ -1,40 +1,14 @@
|
||||
/** |
||||
* Plugin to minimize and use ejs template syntax in index.html. |
||||
* https://github.com/xingyuv/vite-vue-plugin-html
|
||||
* https://github.com/anncwb/vite-plugin-html
|
||||
*/ |
||||
import type { PluginOption } from 'vite' |
||||
import { createHtmlPlugin } from 'vite-vue-plugin-html' |
||||
import pkg from '../../../package.json' |
||||
import { GLOB_CONFIG_FILE_NAME } from '../../constant' |
||||
|
||||
export function configHtmlPlugin(env: ViteEnv, isBuild: boolean) { |
||||
const { VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = env |
||||
|
||||
const path = VITE_PUBLIC_PATH.endsWith('/') ? VITE_PUBLIC_PATH : `${VITE_PUBLIC_PATH}/` |
||||
|
||||
const getAppConfigSrc = () => { |
||||
return `${path || '/'}${GLOB_CONFIG_FILE_NAME}?v=${pkg.version}-${new Date().getTime()}` |
||||
} |
||||
import { createHtmlPlugin } from 'vite-plugin-html' |
||||
|
||||
export function configHtmlPlugin({ isBuild }: { isBuild: boolean }) { |
||||
const htmlPlugin: PluginOption[] = createHtmlPlugin({ |
||||
minify: isBuild, |
||||
inject: { |
||||
// Inject data into ejs template
|
||||
data: { |
||||
title: VITE_GLOB_APP_TITLE, |
||||
}, |
||||
// Embed the generated app.config.js file
|
||||
tags: isBuild |
||||
? [ |
||||
{ |
||||
tag: 'script', |
||||
attrs: { |
||||
src: getAppConfigSrc(), |
||||
}, |
||||
}, |
||||
] |
||||
: [], |
||||
}, |
||||
viteNext: true, |
||||
}) |
||||
return htmlPlugin |
||||
} |
||||
|
Reference in new issue