Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

81 linhas
1.7 KiB

  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. resolve: {
  11. extensions: ['', '.js', '.vue'],
  12. fallback: [path.join(__dirname, 'node_modules')],
  13. alias: {
  14. src: path.resolve(__dirname, './src')
  15. }
  16. },
  17. resolveLoader: {
  18. root: path.join(__dirname, 'node_modules')
  19. },
  20. module: {
  21. loaders: [
  22. {
  23. test: /\.vue$/,
  24. loader: 'vue-loader'
  25. },
  26. {
  27. test: /\.js$/,
  28. loader: 'babel-loader',
  29. exclude: /node_modules/
  30. },
  31. {
  32. test: /\.json$/,
  33. loader: 'json-loader'
  34. },
  35. {
  36. test: /\.html$/,
  37. loader: 'vue-html'
  38. },
  39. {
  40. test: /\.(png|jpg|gif|svg|woff2?|eot|ttf)(\?.*)?$/,
  41. loader: 'url-loader',
  42. query: {
  43. limit: 10000,
  44. name: '[name].[ext]?[hash]'
  45. }
  46. }
  47. ]
  48. },
  49. plugins: [
  50. new webpack.ProvidePlugin({
  51. $: 'jquery',
  52. jQuery: 'jquery',
  53. 'window.jQuery': 'jquery'
  54. })
  55. ],
  56. devServer: {
  57. historyApiFallback: true,
  58. noInfo: true
  59. },
  60. devtool: '#eval-source-map'
  61. };
  62. if (process.env.NODE_ENV === 'production') {
  63. module.exports.devtool = '#source-map';
  64. // http://vuejs.github.io/vue-loader/workflow/production.html
  65. module.exports.plugins = (module.exports.plugins || []).concat([
  66. new webpack.DefinePlugin({
  67. 'process.env': {
  68. NODE_ENV: '"production"'
  69. }
  70. }),
  71. new webpack.optimize.UglifyJsPlugin({
  72. compress: {
  73. warnings: false
  74. }
  75. }),
  76. new webpack.optimize.OccurenceOrderPlugin()
  77. ]);
  78. }