webpack.config.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. module.exports = {
  4. entry: {
  5. 'vue-roaster': ['vue', './src/index.js'],
  6. 'example': './example/main.js'
  7. },
  8. output: {
  9. path: path.resolve(__dirname, './dist'),
  10. publicPath: '/dist',
  11. filename: '[name].js',
  12. library: 'Toast',
  13. libraryTarget: 'umd'
  14. },
  15. resolve: {
  16. alias: {
  17. 'jquery-ui': path.resolve(__dirname, './lib/jquery-ui.min.js'),
  18. modules: path.join(__dirname, 'node_modules')
  19. }
  20. },
  21. resolveLoader: {
  22. root: path.join(__dirname, 'node_modules'),
  23. },
  24. module: {
  25. loaders: [
  26. {
  27. test: /\.vue$/,
  28. loader: 'vue'
  29. },
  30. {
  31. test: /\.js$/,
  32. loader: 'babel',
  33. exclude: /node_modules/
  34. },
  35. {
  36. test: /\.json$/,
  37. loader: 'json'
  38. },
  39. {
  40. test: /\.html$/,
  41. loader: 'vue-html'
  42. },
  43. {
  44. test: /\.(png|jpg|gif|svg)$/,
  45. loader: 'url',
  46. query: {
  47. limit: 10000,
  48. name: '[name].[ext]?[hash]'
  49. }
  50. }
  51. ]
  52. },
  53. devServer: {
  54. historyApiFallback: true,
  55. noInfo: true
  56. },
  57. devtool: '#eval-source-map'
  58. }
  59. if (process.env.NODE_ENV === 'production') {
  60. module.exports.devtool = '#source-map'
  61. // http://vue-loader.vuejs.org/en/workflow/production.html
  62. module.exports.plugins = (module.exports.plugins || []).concat([
  63. new webpack.DefinePlugin({
  64. 'process.env': {
  65. NODE_ENV: '"production"'
  66. }
  67. }),
  68. new webpack.optimize.UglifyJsPlugin({
  69. compress: {
  70. warnings: false
  71. }
  72. }),
  73. new webpack.optimize.OccurenceOrderPlugin()
  74. ])
  75. }