| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | const path = require('path')const webpack = require('webpack')function resolve(dir) {  return path.join(__dirname, '..', dir)}module.exports = {  entry: './src/index.js',  output: {    path: path.resolve(__dirname, './dist'),    publicPath: '/dist/',    filename: 'vue-count-to.min.js',    library: 'CountTo',    libraryTarget: 'umd',    umdNamedDefine: true  },  module: {    rules: [      {        test: /\.(js|vue)$/,        loader: 'eslint-loader',        enforce: 'pre',        include: [resolve('src'), resolve('test')],        options: {          formatter: require('eslint-friendly-formatter')        }      },      {        test: /\.vue$/,        loader: 'vue-loader'      },      {        test: /\.js$/,        loader: 'babel-loader',        exclude: /node_modules/      },      {        test: /\.(png|jpg|gif|svg)$/,        loader: 'file-loader',        options: {          name: '[name].[ext]?[hash]'        }      }    ]  },  resolve: {    alias: {      vue$: 'vue/dist/vue.esm.js'    }  },  externals: {    vue: {      root: 'Vue',      commonjs: 'vue',      commonjs2: 'vue',      amd: 'vue'    }  },  devServer: {    historyApiFallback: true,    noInfo: true  },  performance: {    hints: false  },  devtool: '#source-map'}if (process.env.NODE_ENV === 'production') {  module.exports.devtool = '#source-map'  // http://vue-loader.vuejs.org/en/workflow/production.html  module.exports.plugins = (module.exports.plugins || []).concat([    new webpack.DefinePlugin({      'process.env': {        NODE_ENV: '"production"'      }    }),    new webpack.optimize.UglifyJsPlugin({      sourceMap: true,      compress: {        warnings: false      }    }),    new webpack.LoaderOptionsPlugin({      minimize: true    })  ])}
 |