webpack.config.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. module.exports = {
  4. entry: './src/lib/index.js',
  5. output: {
  6. path: path.resolve(__dirname, './dist'),
  7. publicPath: '/dist/',
  8. filename: 'vue-enum.js',
  9. library: 'vueEnum',
  10. libraryTarget: 'umd'
  11. },
  12. module: {
  13. rules: [
  14. {
  15. test: /\.css$/,
  16. use: [
  17. 'vue-style-loader',
  18. 'css-loader'
  19. ],
  20. }, {
  21. test: /\.vue$/,
  22. loader: 'vue-loader',
  23. options: {
  24. loaders: {
  25. }
  26. // other vue-loader options go here
  27. }
  28. },
  29. {
  30. test: /\.js$/,
  31. loader: 'babel-loader',
  32. exclude: /node_modules/
  33. },
  34. {
  35. test: /\.(png|jpg|gif|svg)$/,
  36. loader: 'file-loader',
  37. options: {
  38. name: '[name].[ext]?[hash]'
  39. }
  40. }
  41. ]
  42. },
  43. resolve: {
  44. alias: {
  45. 'vue$': 'vue/dist/vue.esm.js'
  46. },
  47. extensions: ['*', '.js', '.vue', '.json']
  48. },
  49. devServer: {
  50. historyApiFallback: true,
  51. noInfo: true,
  52. overlay: true
  53. },
  54. performance: {
  55. hints: false
  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. sourceMap: true,
  70. compress: {
  71. warnings: false
  72. }
  73. }),
  74. new webpack.LoaderOptionsPlugin({
  75. minimize: true
  76. })
  77. ])
  78. }