| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 | "use strict";const path = require("path");const defaultSettings = require("./src/settings.js");function resolve(dir) {  return path.join(__dirname, dir);}const name = defaultSettings.title || "管乐迷后台管理系统"; // page title// If your port is set to 80,// use administrator privileges to execute the command line.// For example, Mac: sudo npm run// You can change the port by the following methods:// port = 9528 npm run dev OR npm run dev --port = 9528// const port = process.env.port || process.env.npm_config_port || 9528 // dev port// http://47.99.212.176:8000//  https://online.dayaedu.com// let target = "https://online.dayaedu.com"; //线上// let target = 'http://192.168.3.251:8000' // 何国威// let target = 'http://192.168.3.20:8000' //邹璇// let target = 'http://192.168.3.161:8000' //勇哥// let target = 'http://192.168.3.146:8000' //王昭// let target = 'http://dev.dayaedu.com' // 开发环境let target = "https://test.dayaedu.com"; //测试环境// let target = "https://online.dayaedu.com"; //测试环境// All configuration item explanations can be find in https://cli.vuejs.org/config/module.exports = {  /**   * You will need to set publicPath if you plan to deploy your site under a sub path,   * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,   * then publicPath should be set to "/bar/".   * In most cases please use '/' !!!   * Detail: https://cli.vuejs.org/config/#publicpath   */  publicPath: "./",  outputDir: "dist",  assetsDir: "static",  lintOnSave: false,  productionSourceMap: false,  // 以下是pwa配置  pwa: {    iconPaths: {      favicon32: "favicon1.ico",      favicon16: "favicon1.ico",      appleTouchIcon: "favicon1.ico",      maskIcon: "favicon1.ico",      msTileImage: "favicon1.ico"    }  },  devServer: {    disableHostCheck: true,    open: false,    hot: true,    port: 3005,    // overlay: {    //   warnings: false,    //   errors: true    // },    // https: true,    proxy: {      // change xxx-api/login => mock/login      // detail: https://cli.vuejs.org/config/#devserver-proxy      // http://47.99.212.176:8000      // http://192.168.3.28:8000      // http://192.168.3.134      // http://47.114.176.40:8000      // let target = 'http://dev.dayaedu.com'      // 'http://dev.dayaedu.com'      "/api-auth": {        target: target,        // target : target,        changeOrigin: true,        pathRewrite: {          "^api-auth": ""        }      },      "/api-task": {        target: target,        changeOrigin: true,        pathRewrite: {          "^api-task": ""        }      },      "/api-web": {        target: target,        changeOrigin: true,        pathRewrite: {          "^api-web": ""        }      },      "/api-cms": {        target: target,        changeOrigin: true,        pathRewrite: {          "^api-cms": ""        }      },      "/api-teacher": {        target: target,        changeOrigin: true,        pathRewrite: {          "^api-teacher": ""        }      },      "/api-oa": {        target: target,        changeOrigin: true,        pathRewrite: {          "^api-oa": ""        }      },      "/jiari": {        target: "http://tool.bitefu.net",        changeOrigin: true      },      "/instructions": {        target: defaultSettings.instructions,        changeOrigin: true      }      // instructions    }  },  configureWebpack: {    // provide the app's title in webpack's name field, so that    // it can be accessed in index.html to inject the correct title.    name: name,    resolve: {      alias: {        "@": resolve("src"),        "@scss": path.resolve(__dirname, "src")      }    }  },  chainWebpack(config) {    config.plugins.delete("preload"); // TODO: need test    config.plugins.delete("prefetch"); // TODO: need test    config.resolve.symlinks(true);    // set svg-sprite-loader    config.module      .rule("svg")      .exclude.add(resolve("src/icons"))      .end();    config.module      .rule("icons")      .test(/\.svg$/)      .include.add(resolve("src/icons"))      .end()      .use("svg-sprite-loader")      .loader("svg-sprite-loader")      .options({        symbolId: "icon-[name]"      })      .end();    // set preserveWhitespace    config.module      .rule("vue")      .use("vue-loader")      .loader("vue-loader")      .tap(options => {        // Vue 项目需要添加过滤自定义组件配置。        options.compilerOptions = {          ...options.compilerOptions,          isCustomElement: tag => {            return (              ["conversation-list", "message-list", "message-editor"].indexOf(                tag              ) !== -1            );          }        };        options.compilerOptions.preserveWhitespace = true;        return options;      })      .end();    config      // https://webpack.js.org/configuration/devtool/#development      .when(process.env.NODE_ENV === "development", config =>        config.devtool("cheap-source-map")      );    config.when(process.env.NODE_ENV !== "development", config => {      config        .plugin("ScriptExtHtmlWebpackPlugin")        .after("html")        .use("script-ext-html-webpack-plugin", [          {            // `runtime` must same as runtimeChunk name. default is `runtime`            inline: /runtime\..*\.js$/          }        ])        .end();      config.optimization.splitChunks({        chunks: "all",        cacheGroups: {          libs: {            name: "chunk-libs",            test: /[\\/]node_modules[\\/]/,            priority: 10,            chunks: "initial" // only package third parties that are initially dependent          },          elementUI: {            name: "chunk-elementUI", // split elementUI into a single package            priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app            test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm          },          commons: {            name: "chunk-commons",            test: resolve("src/components"), // can customize your rules            minChunks: 3, //  minimum common number            priority: 5,            reuseExistingChunk: true          }        }      });      config.optimization.runtimeChunk("single");    });  }};
 |