html.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import type { Plugin } from 'vite';
  2. import ViteHtmlPlugin from 'vite-plugin-html';
  3. import { isProdFn, isSiteMode, ViteEnv } from '../../utils';
  4. import { hmScript } from '../hm';
  5. // @ts-ignore
  6. import pkg from '../../../package.json';
  7. import { GLOB_CONFIG_FILE_NAME } from '../../constant';
  8. export function setupHtmlPlugin(
  9. plugins: Plugin[],
  10. env: ViteEnv,
  11. mode: 'development' | 'production'
  12. ) {
  13. const { VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = env;
  14. const htmlPlugin = ViteHtmlPlugin({
  15. // html title
  16. title: VITE_GLOB_APP_TITLE,
  17. minify: isProdFn(mode),
  18. options: {
  19. publicPath: VITE_PUBLIC_PATH,
  20. // Package and insert additional configuration files
  21. injectConfig: isProdFn(mode)
  22. ? `<script src='${VITE_PUBLIC_PATH || './'}${GLOB_CONFIG_FILE_NAME}?v=${
  23. pkg.version
  24. }-${new Date().getTime()}'></script>`
  25. : '',
  26. // Insert Baidu statistics code
  27. hmScript: isSiteMode() ? hmScript : '',
  28. title: VITE_GLOB_APP_TITLE,
  29. },
  30. });
  31. plugins.push(htmlPlugin);
  32. return plugins;
  33. }