var path = require("path");
const webpack = require("webpack");
const resolve = (dir) => path.join(__dirname, dir); // 路径
// const IS_PROD = ["production", "prod"].includes(process.env.NODE_ENV);
module.exports = {
  // 将 examples 目录添加为新的页面
  pages: {
    index: {
      entry: "examples/main.ts",
      // 模板来源
      template: "public/index.html",
      // 输出文件名
      filename: "index.html",
    },
  },
  css: {
    loaderOptions: {
      less: {
        lessOptions: {
          javascriptEnabled: true,
          // modifyVars: {},
        },
        additionalData: `
            @import "ant-design-vue/lib/style/themes/default.less";
            @import "~@/styles/variables.less";
        `,
      },
    },
  },
  chainWebpack: (config) => {
    // 移除 preload 插件
    //config.plugins.delete("preload");
    // 移除 prefetch 插件
    //config.plugins.delete("prefetch");
    config.resolve.alias.set("vue-i18n", "vue-i18n/dist/vue-i18n.cjs.js");
    config.resolve.alias.set("@", resolve("packages"));
    config.module
      .rule("css")
      .exclude.add(resolve("node_modules/ant-design-vue/dist/antd.dark.css"))
      .end();
   // config.module.rule("raw-css").resourceQuery(/raw/).type("asset/source");
    // config.module
    //   //增加ICO验证规则，查看实际输出规则指令 vue inspect > output.js
    //   .rule("image")
    //   .test(/\.(ico)(\?.*)?$/)
    //   .use("url-loader")
    //   .loader("url-loader")
    //   .tap((options) => {
    //     // 修改它的选项...
    //     return options;
    //   });
    // 忽略解析markdown文件
    config.module.noParse(/\.md$/);
    // config.when(IS_PROD, (config) => {
    //   config.module
    //     .rule("md")
    //     .test(/\.md$/)
    //     .type("javascript/auto")
    //     .use("asset")
    //     .loader("asset")
    //     .options({
    //       limit: 100,
    //       esModule: false,
    //       generator: () => "",
    //     });
    //   config.externals(["examples", "lt-request"]);
    // });
    // config.module
    //   .rule("js")
    //   .include.add(__dirname + "packages") // 注意这里需要绝对路径，所以要拼接__dirname
    //   .end()
    //   .use("babel")
    //   .loader("babel-loader")
    //   .tap((options) => {
    //     // 修改它的选项...
    //     return options;
    //   });
    //
  },
  configureWebpack: (config) => {
    config.experiments = {
      topLevelAwait: true,
    };
    config.plugins.push(require("unplugin-vue-define-options/webpack")());
    config.plugins.push(
      new webpack.ProvidePlugin({
        $: "jquery",
        jQuery: "jquery",
        "windows.jQuery": "jquery",
      })
    );
    config.plugins.push(
      new webpack.optimize.LimitChunkCountPlugin({
        maxChunks: 1,
        //minChunkSize: 1000,
      })
    );
    // config.plugins.push(
    //   new webpack.optimize.MinChunkSizePlugin({
    //     minChunkSize: 10000, // Minimum number of characters
    //   })
    // );
    // if (process.env.NODE_ENV === "production") {
    //   config.mode = "production";
    //   // 打包文件大小配置
    //   config.performance = {
    //     maxEntrypointSize: 10000000,
    //     maxAssetSize: 30000000,
    //   };
    // }
  },
  // pluginOptions: {
  //   "style-resources-loader": {
  //     preProcessor: "less",
  //     patterns: [path.resolve(__dirname, "./script/less/global.less")], // 引入全局样式变量
  //   },
  // },
};
