html.ts 980 B

1234567891011121314151617181920212223242526272829303132
  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(plugins: Plugin[], env: ViteEnv) {
  9. const { VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = env;
  10. const htmlPlugin = ViteHtmlPlugin({
  11. // html title
  12. title: VITE_GLOB_APP_TITLE,
  13. minify: isProdFn(),
  14. options: {
  15. // Package and insert additional configuration files
  16. injectConfig: isProdFn()
  17. ? `<script src='${VITE_PUBLIC_PATH || './'}${GLOB_CONFIG_FILE_NAME}?v=${
  18. pkg.version
  19. }-${new Date().getTime()}'></script>`
  20. : '',
  21. // Insert Baidu statistics code
  22. hmScript: isSiteMode() ? hmScript : '',
  23. title: VITE_GLOB_APP_TITLE,
  24. },
  25. });
  26. plugins.push(htmlPlugin);
  27. return plugins;
  28. }