gaoluyang
2026-09-16 fcadf16afa65a8a5ca53a33c4b8f4bf2efe2ea03
vue.config.js
@@ -7,7 +7,7 @@
const CompressionPlugin = require("compression-webpack-plugin");
const name = process.env.VUE_APP_TITLE || "若依管理系统"; // 网页标题
const name = process.env.VUE_APP_TITLE || "LIMS实验室管理系统"; // 网页标题
const port = process.env.port || process.env.npm_config_port || 80; // 端口
@@ -27,7 +27,7 @@
  lintOnSave: process.env.NODE_ENV === "development",
  // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
  productionSourceMap: false,
  transpileDependencies: ["quill"],
  transpileDependencies: ["quill", "fast-png", "iobuffer"],
  // webpack-dev-server 相关配置
  devServer: {
    host: "0.0.0.0",
@@ -36,7 +36,8 @@
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        target: `http://192.168.0.104:8002`,
        // target: `http://36.213.90.123:9015/lims`,
        target: `http://192.168.0.24:8001/lims`,
        changeOrigin: true,
        pathRewrite: {
          ["^" + process.env.VUE_APP_BASE_API]: "",
@@ -59,6 +60,36 @@
        "@": resolve("src"),
      },
    },
    module: {
      rules: [
        // JS 主体文件处理(含 Babel、Thread Loader)
        {
          test: /\.js$/,
          use: [
            {
              loader: 'thread-loader',
              options: { workers: 4 }
            },
            'babel-loader'
          ],
          exclude: /\.worker\.js$/, // 👈 排除 worker 文件
          include: path.resolve(__dirname, 'src')
        },
        // 单独处理 Worker 文件
        {
          test: /\.worker\.js$/,
          use: {
            loader: 'worker-loader',
            options: {
              filename: '[name].[contenthash].worker.js',
              inline: 'fallback'
            }
          },
          type: 'javascript/auto' // 👈 强制 Webpack 不要按模块解析
        }
      ]
    },
    plugins: [
      // http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
      new CompressionPlugin({
@@ -75,6 +106,13 @@
    config.plugins.delete("preload"); // TODO: need test
    config.plugins.delete("prefetch"); // TODO: need test
    // 让改 src/workers/*.worker.js 也能触发 dev server 重建。
    // *.worker.js 已由 worker-loader 处理,但 vue-cli 内置的 js 规则(/\\.m?jsx?$/,
    // 含 cache-loader + babel-loader)同样会命中它。cache-loader 会缓存 worker 模块的
    // 产物,worker 源文件改动后即使模块被判失效并重建,cache-loader 仍直接返回旧缓存,
    // 于是 dev server 一直发旧包(改了 worker 不生效)。把它排除掉即可。
    config.module.rule("js").exclude.add(/\.worker\.js$/);
    // set svg-sprite-loader
    config.module.rule("svg").exclude.add(resolve("src/assets/icons")).end();
    config.module