webpack.config.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. // var { VueLoaderPlugin } = require('vue-loader');
  4. module.exports = {
  5. entry: './src/main.js',
  6. output: {
  7. path: path.resolve(__dirname, './dist'),
  8. publicPath: '/dist/',
  9. filename: 'build.js'
  10. },
  11. resolve: {
  12. extensions: ['.js', '.vue' ]
  13. },
  14. module: {
  15. loaders: [
  16. {
  17. test: /\.vue$/,
  18. loader: 'vue-loader'
  19. },
  20. {
  21. test: /\.js$/,
  22. loader: 'babel-loader',
  23. exclude: /node_modules/
  24. },
  25. {
  26. test: /\.(png|jpg|gif|svg)$/,
  27. loader: 'file-loader',
  28. query: {
  29. name: '[name].[ext]?[hash]'
  30. }
  31. }
  32. ]
  33. },
  34. devServer: {
  35. historyApiFallback: true,
  36. host: '0.0.0.0',
  37. port: 8888,
  38. disableHostCheck: true,
  39. noInfo: true
  40. },
  41. devtool: '#eval-source-map'
  42. }
  43. if (process.env.NODE_ENV === 'production') {
  44. module.exports.devtool = '#source-map'
  45. // http://vue-loader.vuejs.org/en/workflow/production.html
  46. module.exports.plugins = (module.exports.plugins || []).concat([
  47. new webpack.DefinePlugin({
  48. 'process.env': {
  49. NODE_ENV: '"production"'
  50. }
  51. }),
  52. new webpack.optimize.UglifyJsPlugin({
  53. compress: {
  54. warnings: false
  55. }
  56. })
  57. ])
  58. }