"use strict";
const path = require("path");

function resolve(dir) {
    return path.join(__dirname, dir);
}

const name = "微纳园"; // page title

const ip = "0.0.0.0"; // dev port
const port = 9528; // dev port

const Webpack = require("webpack");
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
const CompressionPlugin = require("compression-webpack-plugin");

module.exports = {
    // publicPath: '/mnpH5/', // 代理模式使用
    publicPath: "/lifelineH5/", // tomcat模式使用
    outputDir: "dist",
    assetsDir: "assets",
    lintOnSave: process.env.NODE_ENV === "development",
    productionSourceMap: false,
    devServer: {
        open: true,
        host: ip,
        port: port,
        https: false,
        disableHostCheck: true,
        // 以上的ip和端口是我们本机的;下面为需要跨域的
        proxy: {
            // 配置跨域
            "/h5Server": {
                // target: `http://localhost:9001`,
                target: `http://lifeline.idea-sf.com/lifelineApi`,
                ws: true,
                changOrigin: true, // 允许跨域
                pathRewrite: {
                    "^/h5Server": "" // 请求的时候使用这个server就可以
                }
            },
            "/server": {
                target: process.env.VUE_APP_API_URL,
                ws: true,
                changOrigin: true, // 允许跨域
                pathRewrite: {
                    "^/server": "" // 请求的时候使用这个server就可以
                }
            }
        }
    },
    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")
            }
        },
        externals: {
            vue: "Vue",
            "vue-router": "VueRouter",
            axios: "axios",
            vant: "vant",
            moment: "moment"
        },
        plugins: [
            // new BundleAnalyzerPlugin({ // 插件在这里使用
            //     analyzerHost: '127.0.0.1',
            //     //  将在“服务器”模式下使用的端口启动HTTP服务器。
            //     analyzerPort: 8889,
            //     analyzerMode: 'server',
            //     openAnalyzer: false
            // }),
            new Webpack.ProvidePlugin({
                $: "jquery",
                jquery: "jquery"
            }),
            new CompressionPlugin({
                // test: /\.(js|css)?$/i, // 哪些文件要压缩
                // filename: '[path].gz[query]', // 压缩后的文件名
                // algorithm: 'gzip', // 使用gzip压缩
                // minRatio: 1, // 压缩率小于1才会压缩
                // deleteOriginalAssets: true // 删除未压缩的文件，谨慎设置，如果希望提供非gzip的资源，可不设置或者设置为false
                filename: "[path].gz[query]", // 压缩后的文件名(保持原文件名，后缀加.gz)
                algorithm: "gzip", // 使用gzip压缩
                test: new RegExp("\\.(" + ["js", "css"].join("|") + ")$"), // 匹配文件名
                threshold: 10240, // 对超过10k的数据压缩
                minRatio: 0.8 // 压缩率小于0.8才会压缩
            })
        ]
    },
    css: {
        loaderOptions: {
            // 给 sass-loader 传递选项
            sass: {
                // @/ 是 src/ 的别名
                data: `@import "@/common/style/index.scss";`
            }
        }
    }
};
