vite.config.ts 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { defineConfig } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. import legacy from '@vitejs/plugin-legacy';
  4. import Markdown from 'vite-plugin-md';
  5. import path from 'path';
  6. import config from './package.json';
  7. const hljs = require('highlight.js'); // https://highlightjs.org/
  8. const resolve = path.resolve;
  9. // https://vitejs.dev/config/
  10. export default defineConfig({
  11. base: '/3x/',
  12. server: {
  13. port: 2021,
  14. proxy: {
  15. '/devServer': {
  16. target: 'https://nutui.jd.com',
  17. changeOrigin: true,
  18. rewrite: (path) => path.replace(/^\/devServer/, '')
  19. }
  20. }
  21. },
  22. resolve: {
  23. alias: [{ find: '@', replacement: resolve(__dirname, './src') }]
  24. },
  25. css: {
  26. preprocessorOptions: {
  27. scss: {
  28. // example : additionalData: `@import "./src/design/styles/variables";`
  29. // dont need include file extend .scss
  30. additionalData: `@import "@/packages/styles/variables.scss";@import "@/sites/assets/styles/variables.scss";`
  31. }
  32. }
  33. },
  34. plugins: [
  35. vue({
  36. include: [/\.vue$/, /\.md$/]
  37. }),
  38. Markdown({
  39. // default options passed to markdown-it
  40. // see: https://markdown-it.github.io/markdown-it/
  41. markdownItOptions: {
  42. highlight: function (str, lang) {
  43. if (lang && hljs.getLanguage(lang)) {
  44. try {
  45. return hljs.highlight(lang, str).value;
  46. } catch (__) {}
  47. }
  48. return ''; // 使用额外的默认转义
  49. }
  50. }
  51. }),
  52. legacy({
  53. targets: ['defaults', 'not IE 11']
  54. })
  55. ],
  56. build: {
  57. target: 'es2015',
  58. outDir: './dist/3x/',
  59. assetsDir: config.version,
  60. cssCodeSplit: true,
  61. rollupOptions: {
  62. input: {
  63. doc: resolve(__dirname, 'index.html'),
  64. mobile: resolve(__dirname, 'demo.html')
  65. }
  66. }
  67. }
  68. });