webpack.config.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. module.exports = {
  4. entry: './src/main.js',
  5. output: {
  6. path: path.resolve(__dirname, './dist'),
  7. publicPath: '/dist/',
  8. filename: 'build.js'
  9. },
  10. module: {
  11. rules: [
  12. {
  13. test: /\.css$/,
  14. use: [
  15. 'vue-style-loader',
  16. 'css-loader'
  17. ],
  18. }, {
  19. test: /\.vue$/,
  20. loader: 'vue-loader',
  21. options: {
  22. loaders: {
  23. }
  24. // other vue-loader options go here
  25. }
  26. },
  27. {
  28. test: /\.js$/,
  29. loader: 'babel-loader',
  30. exclude: /node_modules/
  31. },
  32. {
  33. test: /\.(png|jpg|gif|svg)$/,
  34. loader: 'file-loader',
  35. options: {
  36. name: '[name].[ext]?[hash]'
  37. }
  38. }
  39. ]
  40. },
  41. resolve: {
  42. alias: {
  43. 'vue$': 'vue/dist/vue.esm.js'
  44. },
  45. extensions: ['*', '.js', '.vue', '.json']
  46. },
  47. devServer: {
  48. historyApiFallback: true,
  49. noInfo: true,
  50. overlay: true
  51. },
  52. performance: {
  53. hints: false
  54. },
  55. devtool: '#eval-source-map'
  56. }
  57. if (process.env.NODE_ENV === 'production') {
  58. module.exports.devtool = '#source-map'
  59. // http://vue-loader.vuejs.org/en/workflow/production.html
  60. module.exports.plugins = (module.exports.plugins || []).concat([
  61. new webpack.DefinePlugin({
  62. 'process.env': {
  63. NODE_ENV: '"production"'
  64. }
  65. }),
  66. new webpack.optimize.UglifyJsPlugin({
  67. sourceMap: true,
  68. compress: {
  69. warnings: false
  70. }
  71. }),
  72. new webpack.LoaderOptionsPlugin({
  73. minimize: true
  74. })
  75. ])
  76. }