| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | const path = require('path');const webpack = require('webpack');const BabiliWebpackPlugin = require('babili-webpack-plugin');const babiliPreset = require('babel-preset-babili');const vueLoaderConfig = require('./vue-loader.conf');const { IS_DEV, styleRule } = require('./utils');const { MINIFY } = process.env;const DIST = 'dist';const definePlugin = new webpack.DefinePlugin({  'process.env': {    NODE_ENV: JSON.stringify(process.env.NODE_ENV),    DEBUG: IS_DEV ? 'true' : 'false', // whether to log message errors  },});function resolve(dir) {  return path.join(__dirname, '..', dir);}module.exports = {  output: {    path: resolve(DIST),    publicPath: '/',    filename: '[name].js',  },  resolve: {    extensions: ['.js', '.vue'],    alias: {      src: resolve('src'),    }  },  node: {    // css-loader requires unnecessary `Buffer` polyfill,    // which increases the bundle size significantly.    // See:    // - https://github.com/webpack-contrib/css-loader/issues/454    // - https://github.com/vuejs/vue-loader/issues/720    Buffer: false,  },  module: {    rules: [      {        test: /\.vue$/,        loader: 'vue-loader',        options: vueLoaderConfig      },      {        test: /\.js$/,        loader: 'babel-loader',        include: [resolve('src'), resolve('test')]      },      styleRule({        fallback: 'vue-style-loader',        loaders: ['postcss-loader'],      }),    ],  },  // cheap-module-eval-source-map is faster for development  devtool: IS_DEV ? '#inline-source-map' : false,  plugins: [    definePlugin,    !IS_DEV && new BabiliWebpackPlugin({      mangle: !!MINIFY,    }, {      babili: (...args) => Object.assign(babiliPreset(...args), {        minified: !!MINIFY,      }),    }),  ].filter(Boolean),};
 |