-
Notifications
You must be signed in to change notification settings - Fork 64
/
vite.config.ts
109 lines (106 loc) · 3.1 KB
/
vite.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import legacy from "@vitejs/plugin-legacy";
import Markdown from "vite-plugin-md";
import path from "path";
import { compressText } from "./src/sites/doc/components/demo-block/basedUtil";
const hljs = require("highlight.js"); // https://highlightjs.org/
import config from "./package.json";
const resolve = path.resolve;
// https://vitejs.dev/config/
export default defineConfig({
base: "/bingo/",
server: {
port: 2022,
proxy: {
"/devServer": {
target: "https://nutui.jd.com",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/devServer/, ""),
},
},
},
resolve: {
alias: [{ find: "@", replacement: resolve(__dirname, "./src") }],
},
css: {
preprocessorOptions: {
scss: {
// example : additionalData: `@import "./src/design/styles/variables";`
// dont need include file extend .scss
additionalData: `@import "@/packages/styles/variables.scss";@import "@/sites/assets/styles/variables.scss";`,
},
},
postcss: {
plugins: [
// eslint-disable-next-line @typescript-eslint/no-var-requires
require("autoprefixer")({
overrideBrowserslist: [
"> 0.5%",
"last 2 versions",
"ie > 11",
"iOS >= 10",
"Android >= 5",
],
}),
],
},
},
plugins: [
vue({
include: [/\.vue$/, /\.md$/],
}),
legacy({
targets: ["defaults", "not IE 11"],
}),
Markdown(),
// Markdown({
// // default options passed to markdown-it
// // see: https://markdown-it.github.io/markdown-it/
// markdownItOptions: {
// highlight: function (str, lang) {
// if (lang && hljs.getLanguage(lang)) {
// try {
// return hljs.highlight(lang, str).value;
// } catch (__) {}
// }
// return ""; // 使用额外的默认转义
// },
// },
// markdownItSetup(md) {
// md.use(require("markdown-it-container"), "demo", {
// validate: function (params) {
// return params.trim().match(/^demo\s*(.*)$/);
// },
// render: function (tokens, idx) {
// const m = tokens[idx].info.trim().match(/^demo\s*(.*)$/);
// if (tokens[idx].nesting === 1) {
// // opening tag
// const contentHtml = compressText(tokens[idx + 1].content);
// return (
// `<demo-block data-type="vue" data-value="${contentHtml}">` +
// md.utils.escapeHtml(m[1]) +
// "\n"
// );
// } else {
// // closing tag
// return "</demo-block>\n";
// }
// },
// });
// },
// }),
],
build: {
target: "es2015",
outDir: "./dist/bingo/",
assetsDir: config.version,
cssCodeSplit: true,
rollupOptions: {
input: {
doc: resolve(__dirname, "index.html"),
mobile: resolve(__dirname, "demo.html"),
},
},
},
});