xref: /openbmc/webui-vue/vue.config.js (revision 9e36f522b94511c1d77335493c09e68975db031c)
1const CompressionPlugin = require('compression-webpack-plugin');
2
3module.exports = {
4  css: {
5    loaderOptions: {
6      scss: {
7        prependData: `
8          @import "@/assets/styles/_obmc-custom.scss";
9        `
10      }
11    }
12  },
13  devServer: {
14    https: true,
15    proxy: {
16      '/': {
17        target: process.env.BASE_URL,
18        onProxyRes: proxyRes => {
19          // This header is ignored in the browser so removing
20          // it so we don't see warnings in the browser console
21          delete proxyRes.headers['strict-transport-security'];
22        }
23      }
24    },
25    port: 8000
26  },
27  productionSourceMap: false,
28  configureWebpack: config => {
29    const envName = process.env.VUE_APP_ENV_NAME;
30
31    if (process.env.NODE_ENV === 'production') {
32      config.plugins.push(
33        new CompressionPlugin({
34          deleteOriginalAssets: true
35        })
36      );
37    }
38    if (envName !== undefined) {
39      // Resolve store and router modules in src/main.js
40      // depending on environment (VUE_APP_ENV_NAME) variable
41      config.resolve.alias['./store$'] = `./env/store/${envName}.js`;
42      config.resolve.alias['./router$'] = `./env/router/${envName}.js`;
43    }
44  },
45  chainWebpack: config => {
46    if (process.env.NODE_ENV === 'production') {
47      config.plugins.delete('prefetch');
48      config.plugins.delete('preload');
49    }
50  },
51  pluginOptions: {
52    i18n: {
53      localeDir: 'locales',
54      enableInSFC: true
55    }
56  }
57};
58