webpack.config.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. var path = require('path');
  2. var webpack = require('webpack');
  3. module.exports = {
  4. entry: './js-src/init.js',
  5. output: {
  6. path: path.resolve(__dirname, '../js'),
  7. publicPath: '/',
  8. filename: 'merged.js'
  9. },
  10. module: {
  11. rules: [
  12. {
  13. test: /\.vue$/,
  14. loader: 'vue-loader',
  15. options: {
  16. loaders: {
  17. },
  18. esModule: false
  19. // other vue-loader options go here
  20. }
  21. }
  22. ]
  23. },
  24. resolve: {
  25. alias: {
  26. 'vue-select': 'vue-select/dist/vue-select.js',
  27. 'vue': process.env.NODE_ENV === 'production' ? 'vue/dist/vue.min.js' : 'vue/dist/vue.js'
  28. }
  29. },
  30. performance: {
  31. hints: false
  32. },
  33. devtool: '#eval-source-map'
  34. };
  35. if (process.env.NODE_ENV === 'production') {
  36. module.exports.devtool = '#source-map';
  37. // http://vue-loader.vuejs.org/en/workflow/production.html
  38. module.exports.plugins = (module.exports.plugins || []).concat([
  39. new webpack.DefinePlugin({
  40. 'process.env': {
  41. NODE_ENV: '"production"'
  42. }
  43. }),
  44. new webpack.optimize.UglifyJsPlugin({
  45. sourceMap: true,
  46. compress: {
  47. warnings: false
  48. }
  49. }),
  50. new webpack.LoaderOptionsPlugin({
  51. minimize: true
  52. })
  53. ]);
  54. }