vite.config.ts.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. // vite.config.ts
  2. import path from "path";
  3. import { defineConfig } from "vite";
  4. import vue from "@vitejs/plugin-vue";
  5. import WindiCss from "vite-plugin-windicss";
  6. import AutoImport from "unplugin-auto-import/vite";
  7. import Components from "unplugin-vue-components/vite";
  8. import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
  9. import Icons from "unplugin-icons/vite";
  10. import IconsResolver from "unplugin-icons/resolver";
  11. // plugins/vite-plugin-conditional-compile.ts
  12. import MagicString from "magic-string";
  13. import { createFilter } from "vite";
  14. var config = void 0;
  15. var replaceMatched = (code, id) => {
  16. const env = config.env;
  17. const source = new MagicString(code, {
  18. filename: id
  19. });
  20. source.replace(/^.*?#if(n?)def\s*(\S+).*[\r\n]{1,2}([\s\S]+?)\s*.*?#endif.*?$/gm, (_, $1, $2, $3) => {
  21. const isNot = !!$1;
  22. const isKeep = $2.split("||").some((v) => {
  23. let flag = false;
  24. const [key, value] = v.split("=");
  25. if (value === void 0)
  26. flag = !!env[key];
  27. else
  28. flag = String(env[key]) === value;
  29. flag = isNot ? !flag : flag;
  30. return flag;
  31. });
  32. return isKeep ? $3 : "";
  33. });
  34. if (source.hasChanged()) {
  35. return {
  36. code: source.toString(),
  37. map: source.generateMap({
  38. source: id,
  39. file: `${id}.map`,
  40. includeContent: true
  41. })
  42. };
  43. }
  44. };
  45. var resolveOptions = (userOptions) => {
  46. return {
  47. include: ["**/*"],
  48. exclude: [],
  49. ...userOptions
  50. };
  51. };
  52. var VitePluginConditionalCompile = (userOptions = {}) => {
  53. const options = resolveOptions(userOptions);
  54. return {
  55. name: "vite-plugin-conditional-compile",
  56. enforce: "pre",
  57. configResolved(_config) {
  58. config = _config;
  59. },
  60. transform(code, id) {
  61. const filter = createFilter(options.include, options.exclude);
  62. if (filter(id))
  63. return replaceMatched(code, id);
  64. }
  65. };
  66. };
  67. var vite_plugin_conditional_compile_default = VitePluginConditionalCompile;
  68. // vite.config.ts
  69. var vite_config_default = defineConfig({
  70. resolve: {
  71. alias: {
  72. "@": path.resolve("/Users/Alvis/BozeduStore/txwx_manage", "src"),
  73. "~": path.resolve("/Users/Alvis/BozeduStore/txwx_manage", "src")
  74. }
  75. },
  76. plugins: [
  77. vite_plugin_conditional_compile_default(),
  78. vue({
  79. reactivityTransform: true
  80. }),
  81. WindiCss(),
  82. AutoImport({
  83. imports: ["vue", "vue/macros", "vue-router"],
  84. dirs: [
  85. "src/composables",
  86. "src/utils"
  87. ],
  88. resolvers: [ElementPlusResolver()],
  89. vueTemplate: true,
  90. eslintrc: {
  91. enabled: true
  92. }
  93. }),
  94. Components({
  95. dirs: ["src/components/"],
  96. extensions: ["vue", "md"],
  97. include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
  98. resolvers: [ElementPlusResolver({ importStyle: "sass" }), IconsResolver()]
  99. }),
  100. Icons({
  101. compiler: "vue3",
  102. autoInstall: true
  103. })
  104. ],
  105. server: {
  106. host: true
  107. },
  108. build: {
  109. rollupOptions: {
  110. output: {
  111. manualChunks: {
  112. axios: ["axios"],
  113. vant: ["vant"]
  114. }
  115. }
  116. }
  117. }
  118. });
  119. export {
  120. vite_config_default as default
  121. };
  122. //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiLCAicGx1Z2lucy92aXRlLXBsdWdpbi1jb25kaXRpb25hbC1jb21waWxlLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAndml0ZSdcbmltcG9ydCB2dWUgZnJvbSAnQHZpdGVqcy9wbHVnaW4tdnVlJ1xuaW1wb3J0IFdpbmRpQ3NzIGZyb20gJ3ZpdGUtcGx1Z2luLXdpbmRpY3NzJ1xuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSAndW5wbHVnaW4tYXV0by1pbXBvcnQvdml0ZSdcbmltcG9ydCBDb21wb25lbnRzIGZyb20gJ3VucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3ZpdGUnXG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSAndW5wbHVnaW4tdnVlLWNvbXBvbmVudHMvcmVzb2x2ZXJzJ1xuaW1wb3J0IEljb25zIGZyb20gJ3VucGx1Z2luLWljb25zL3ZpdGUnXG5pbXBvcnQgSWNvbnNSZXNvbHZlciBmcm9tICd1bnBsdWdpbi1pY29ucy9yZXNvbHZlcidcbmltcG9ydCBDb25kaXRpb25hbENvbXBpbGUgZnJvbSAnLi9wbHVnaW5zL3ZpdGUtcGx1Z2luLWNvbmRpdGlvbmFsLWNvbXBpbGUnXG5cbi8vIGh0dHBzOi8vdml0ZWpzLmRldi9jb25maWcvXG5leHBvcnQgZGVmYXVsdCBkZWZpbmVDb25maWcoe1xuICByZXNvbHZlOiB7XG4gICAgYWxpYXM6IHtcbiAgICAgICdAJzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL3R4d3hfbWFuYWdlXCIsICdzcmMnKSxcbiAgICAgICd+JzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL3R4d3hfbWFuYWdlXCIsICdzcmMnKSxcbiAgICAgIC8vICd+Y29tcG9uZW50cyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS90eHd4X21hbmFnZVwiLCAnc3JjL2NvbXBvbmVudHMnKSxcbiAgICAgIC8vICd+cGFnZXMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvdHh3eF9tYW5hZ2VcIiwgJ3NyYy9wYWdlcycpLFxuICAgICAgLy8gJ351dGlscyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS90eHd4X21hbmFnZVwiLCAnc3JjL3V0aWxzJyksXG4gICAgICAvLyAnfmFzc2V0cyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS90eHd4X21hbmFnZVwiLCAnc3JjL2Fzc2V0cycpLFxuICAgICAgLy8gJ35zdHlsZXMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvdHh3eF9tYW5hZ2VcIiwgJ3NyYy9zdHlsZXMnKSxcbiAgICAgIC8vICd+bGliJzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL3R4d3hfbWFuYWdlXCIsICdzcmMvbGliJyksXG4gICAgICAvLyAnfnBsdWdpbnMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvdHh3eF9tYW5hZ2VcIiwgJ3NyYy9wbHVnaW5zJyksXG4gICAgICAvLyAnfnJvdXRlcic6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS90eHd4X21hbmFnZVwiLCAnc3JjL3JvdXRlcicpLFxuICAgICAgLy8gJ35zdG9yZSc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS90eHd4X21hbmFnZVwiLCAnc3JjL3N0b3JlJyksXG4gICAgICAvLyAnfmNvbmZpZyc6IHBhdGgucmVzb2x2ZShcIi9Vc2Vycy9BbHZpcy9Cb3plZHVTdG9yZS90eHd4X21hbmFnZVwiLCAnc3JjL2NvbmZpZycpLFxuICAgICAgLy8gJ35hcGknOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvdHh3eF9tYW5hZ2VcIiwgJ3NyYy9hcGknKSxcbiAgICAgIC8vICd+Y29uc3RhbnRzJzogcGF0aC5yZXNvbHZlKFwiL1VzZXJzL0FsdmlzL0JvemVkdVN0b3JlL3R4d3hfbWFuYWdlXCIsICdzcmMvY29uc3RhbnRzJyksXG4gICAgICAvLyAnfmxvY2FsZXMnOiBwYXRoLnJlc29sdmUoXCIvVXNlcnMvQWx2aXMvQm96ZWR1U3RvcmUvdHh3eF9tYW5hZ2VcIiwgJ3NyYy9sb2NhbGVzJyksXG4gICAgfSxcbiAgfSxcbiAgLy8gY3NzOiB7XG4gIC8vICAgcHJlcHJvY2Vzc29yT3B0aW9uczoge1xuICAvLyAgICAgc2Nzczoge1xuICAvLyAgICAgICBhZGRpdGlvbmFsRGF0YTogJ0B1c2UgXCJ+L3N0eWxlcy9lbGVtZW50L2luZGV4LnNjc3NcIiBhcyAqOycsXG4gIC8vICAgICB9LFxuICAvLyAgIH0sXG4gIC8vIH0sXG4gIHBsdWdpbnM6IFtcbiAgICBDb25kaXRpb25hbENvbXBpbGUoKSxcbiAgICB2dWUoe1xuICAgICAgcmVhY3Rpdml0eVRyYW5zZm9ybTogdHJ1ZSxcbiAgICB9KSxcbiAgICBXaW5kaUNzcygpLFxuICAgIEF1dG9JbXBvcnQoe1xuICAgICAgLy8gZHRzOiAnc3JjL2F1dG8taW1wb3J0cy5kLnRzJyxcbiAgICAgIGltcG9ydHM6IFsndnVlJywgJ3Z1ZS9tYWNyb3MnLCAndnVlLXJvdXRlciddLFxuICAgICAgZGlyczogW1xuICAgICAgICAnc3JjL2NvbXBvc2FibGVzJyxcbiAgICAgICAgLy8gJ3NyYy9zdG9yZScsXG4gICAgICAgICdzcmMvdXRpbHMnLFxuICAgICAgXSxcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoKV0sXG4gICAgICB2dWVUZW1wbGF0ZTogdHJ1ZSxcbiAgICAgIGVzbGludHJjOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIC8vIGVuYWJsZWQ6IGZhbHNlLCAvLyBEZWZhdWx0IGBmYWxzZWBcbiAgICAgICAgLy8gZmlsZXBhdGg6ICcuLy5lc2xpbnRyYy1hdXRvLWltcG9ydC5qc29uJywgLy8gRGVmYXVsdCBgLi8uZXNsaW50cmMtYXV0by1pbXBvcnQuanNvbmBcbiAgICAgICAgLy8gZ2xvYmFsc1Byb3BWYWx1ZTogdHJ1ZSwgLy8gRGVmYXVsdCBgdHJ1ZWAsICh0cnVlIHwgZmFsc2UgfCAncmVhZG9ubHknIHwgJ3JlYWRhYmxlJyB8ICd3cml0YWJsZScgfCAnd3JpdGVhYmxlJylcbiAgICAgIH0sXG4gICAgfSksXG4gICAgQ29tcG9uZW50cyh7XG4gICAgICAvLyBkdHM6ICdzcmMvY29tcG9uZW50cy5kLnRzJyxcbiAgICAgIGRpcnM6IFsnc3JjL2NvbXBvbmVudHMvJ10sXG4gICAgICAvLyBhbGxvdyBhdXRvIGxvYWQgbWFya2Rvd24gY29tcG9uZW50cyB1bmRlciBgLi9zcmMvY29tcG9uZW50cy9gXG4gICAgICBleHRlbnNpb25zOiBbJ3Z1ZScsICdtZCddLFxuICAgICAgLy8gYWxsb3cgYXV0byBpbXBvcnQgYW5kIHJlZ2lzdGVyIGNvbXBvbmVudHMgdXNlZCBpbiBtYXJrZG93blxuICAgICAgaW5jbHVkZTogWy9cXC52dWUkLywgL1xcLnZ1ZVxcP3Z1ZS8sIC9cXC5tZCQvXSxcbiAgICAgIHJlc29sdmVyczogW0VsZW1lbnRQbHVzUmVzb2x2ZXIoeyBpbXBvcnRTdHlsZTogJ3Nhc3MnIH0pLCBJY29uc1Jlc29sdmVyKCldLFxuICAgIH0pLFxuICAgIEljb25zKHtcbiAgICAgIGNvbXBpbGVyOiAndnVlMycsXG4gICAgICBhdXRvSW5zdGFsbDogdHJ1ZSxcbiAgICB9KSxcbiAgXSxcbiAgc2VydmVyOiB7XG4gICAgaG9zdDogdHJ1ZSxcbiAgfSxcbiAgYnVpbGQ6IHtcbiAgICByb2xsdXBPcHRpb25zOiB7XG4gICAgICBvdXRwdXQ6IHtcbiAgICAgICAgbWFudWFsQ2h1bmtzOiB7XG4gICAgICAgICAgYXhpb3M6IFsnYXhpb3MnXSxcbiAgICAgICAgICB2YW50OiBbJ3ZhbnQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbn0pXG4iLCAiaW1wb3J0IHR5cGUgeyBGaWx0ZXJQYXR0ZXJuLCBQbHVnaW4sIFJlc29sdmVkQ29uZmlnIH0gZnJvbSAndml0ZSdcblxuaW1wb3J0IE1hZ2ljU3RyaW5nIGZyb20gJ21hZ2ljLXN0cmluZydcbmltcG9ydCB7IGNyZWF0ZUZpbHRlciB9IGZyb20gJ3ZpdGUnXG5cbmludGVyZmFjZSBPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBkZWZhdWx0IFtcIioqXFwvKlwiXVxuICAgKi9cbiAgaW5jbHVkZTogRmlsdGVyUGF0dGVyblxuICAvKipcbiAgICogQGRlZmF1bHQgW11cbiAgICovXG4gIGV4Y2x1ZGU6IEZpbHRlclBhdHRlcm5cbn1cblxudHlwZSBVc2VyT3B0aW9ucyA9IFBhcnRpYWw8T3B0aW9ucz5cblxudHlwZSBSZXNvbHZlZE9wdGlvbnMgPSBPcHRpb25zXG5sZXQgY29uZmlnOiBSZXNvbHZlZENvbmZpZyA9IHVuZGVmaW5lZCFcblxuY29uc3QgcmVwbGFjZU1hdGNoZWQgPSAoY29kZTogc3RyaW5nLCBpZDogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGVudiA9IGNvbmZpZy5lbnZcbiAgY29uc3Qgc291cmNlID0gbmV3IE1hZ2ljU3RyaW5nKGNvZGUsIHtcbiAgICBmaWxlbmFtZTogaWQsXG4gIH0pXG5cbiAgc291cmNlLnJlcGxhY2UoXG4gICAgL14uKj8jaWYobj8pZGVmXFxzKihcXFMrKS4qW1xcclxcbl17MSwyfShbXFxzXFxTXSs/KVxccyouKj8jZW5kaWYuKj8kL2dtLFxuICAgIC8qKlxuICAgICAqIFx1Njc2MVx1NEVGNlx1NjZGRlx1NjM2MlxuICAgICAqIEBwYXJhbSBfIFx1NTMzOVx1OTE0RFx1NzY4NFx1NUI1N1x1N0IyNlx1NEUzMlxuICAgICAqIEBwYXJhbSAkMSBcdTY2MkZcdTU0MjZcdTRFM0Egbm90IFx1NkEyMVx1NUYwRlxuICAgICAqIEBwYXJhbSAkMiBcdTY3NjFcdTRFRjZcbiAgICAgKiBAcGFyYW0gJDMgY29kZVxuICAgICAqL1xuICAgIChfLCAkMSwgJDIsICQzKSA9PiB7XG4gICAgICBjb25zdCBpc05vdCA9ICEhJDFcbiAgICAgIGNvbnN0IGlzS2VlcCA9ICQyLnNwbGl0KCd8fCcpLnNvbWUoKHY6IHN0cmluZykgPT4ge1xuICAgICAgICBsZXQgZmxhZyA9IGZhbHNlXG4gICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHYuc3BsaXQoJz0nKVxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICBmbGFnID0gISFlbnZba2V5XVxuXG4gICAgICAgIGVsc2VcbiAgICAgICAgICBmbGFnID0gU3RyaW5nKGVudltrZXldKSA9PT0gdmFsdWVcblxuICAgICAgICBmbGFnID0gaXNOb3QgPyAhZmxhZyA6IGZsYWdcbiAgICAgICAgcmV0dXJuIGZsYWdcbiAgICAgIH0pXG4gICAgICByZXR1cm4gaXNLZWVwID8gJDMgOiAnJ1xuICAgIH0sXG4gIClcblxuICBpZiAoc291cmNlLmhhc0NoYW5nZWQoKSkge1xuICAgIHJldHVybiB7XG4gICAgICBjb2RlOiBzb3VyY2UudG9TdHJpbmcoKSxcbiAgICAgIG1hcDogc291cmNlLmdlbmVyYXRlTWFwKHtcbiAgICAgICAgc291cmNlOiBpZCxcbiAgICAgICAgZmlsZTogYCR7aWR9Lm1hcGAsXG4gICAgICAgIGluY2x1ZGVDb250ZW50OiB0cnVlLFxuICAgICAgfSksXG4gICAgfVxuICB9XG59XG5cbmNvbnN0IHJlc29sdmVPcHRpb25zID0gKHVzZXJPcHRpb25zOiBVc2VyT3B0aW9ucyk6IFJlc29sdmVkT3B0aW9ucyA9PiB7XG4gIHJldHVybiB7XG4gICAgaW5jbHVkZTogWycqKi8qJ10sXG4gICAgZXhjbHVkZTogW10sXG4gICAgLi4udXNlck9wdGlvbnMsXG4gIH1cbn1cblxuY29uc3QgVml0ZVBsdWdpbkNvbmRpdGlvbmFsQ29tcGlsZSA9IChcbiAgdXNlck9wdGlvbnM6IFVzZXJPcHRpb25zID0ge30sXG4pOiBQbHVnaW4gPT4ge1xuICBjb25zdCBvcHRpb25zID0gcmVzb2x2ZU9wdGlvbnModXNlck9wdGlvbnMpXG4gIHJldHVybiB7XG4gICAgbmFtZTogJ3ZpdGUtcGx1Z2luLWNvbmRpdGlvbmFsLWNvbXBpbGUnLFxuICAgIGVuZm9yY2U6ICdwcmUnLFxuICAgIGNvbmZpZ1Jlc29sdmVkKF9jb25maWcpIHtcbiAgICAgIGNvbmZpZyA9IF9jb25maWdcbiAgICB9LFxuICAgIHRyYW5zZm9ybShjb2RlLCBpZCkge1xuICAgICAgY29uc3QgZmlsdGVyID0gY3JlYXRlRmlsdGVyKG9wdGlvbnMuaW5jbHVkZSwgb3B0aW9ucy5leGNsdWRlKVxuICAgICAgaWYgKGZpbHRlcihpZCkpXG4gICAgICAgIHJldHVybiByZXBsYWNlTWF0Y2hlZChjb2RlLCBpZClcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpdGVQbHVnaW5Db25kaXRpb25hbENvbXBpbGVcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQ05BO0FBQ0E7QUFnQkEsSUFBSSxTQUF5QjtBQUU3QixJQUFNLGlCQUFpQixDQUFDLE1BQWMsT0FBZTtBQUNuRCxRQUFNLE1BQU0sT0FBTztBQUNuQixRQUFNLFNBQVMsSUFBSSxZQUFZLE1BQU07QUFBQSxJQUNuQyxVQUFVO0FBQUEsRUFDWixDQUFDO0FBRUQsU0FBTyxRQUNMLG1FQVFBLENBQUMsR0FBRyxJQUFJLElBQUksT0FBTztBQUNqQixVQUFNLFFBQVEsQ0FBQyxDQUFDO0FBQ2hCLFVBQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFjO0FBQ2hELFVBQUksT0FBTztBQUNYLFlBQU0sQ0FBQyxLQUFLLFNBQVMsRUFBRSxNQUFNLEdBQUc7QUFDaEMsVUFBSSxVQUFVO0FBQ1osZUFBTyxDQUFDLENBQUMsSUFBSTtBQUFBO0FBR2IsZUFBTyxPQUFPLElBQUksSUFBSSxNQUFNO0FBRTlCLGFBQU8sUUFBUSxD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