print.ts 673 B

12345678910111213141516171819202122232425262728
  1. import type { PluginOption } from 'vite';
  2. import type { PrintPluginOptions } from '../typing';
  3. import { colors } from '@vben/node-utils';
  4. export const vitePrintPlugin = (
  5. options: PrintPluginOptions = {},
  6. ): PluginOption => {
  7. const { infoMap = {} } = options;
  8. return {
  9. configureServer(server) {
  10. const _printUrls = server.printUrls;
  11. server.printUrls = () => {
  12. _printUrls();
  13. for (const [key, value] of Object.entries(infoMap)) {
  14. console.log(
  15. ` ${colors.green('➜')} ${colors.bold(key)}: ${colors.cyan(value)}`,
  16. );
  17. }
  18. };
  19. },
  20. enforce: 'pre',
  21. name: 'vite:print-info',
  22. };
  23. };