webpack.config.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. var path = require('path')
  2. var webpack = require('webpack')
  3. module.exports = {
  4. entry: './src/index.js',
  5. output: {
  6. path: path.resolve(__dirname, './dist'),
  7. publicPath: '/dist/',
  8. filename: 'iview-area.js',
  9. library: 'iviewArea',
  10. libraryTarget: 'umd',
  11. umdNamedDefine: true
  12. },
  13. module: {
  14. rules: [
  15. {
  16. test: /\.css$/,
  17. use: [
  18. 'vue-style-loader',
  19. 'css-loader'
  20. ],
  21. }, {
  22. test: /\.vue$/,
  23. loader: 'vue-loader',
  24. options: {
  25. loaders: {
  26. }
  27. // other vue-loader options go here
  28. }
  29. },
  30. {
  31. test: /\.js$/,
  32. loader: 'babel-loader',
  33. exclude: /node_modules/
  34. },
  35. {
  36. test: /\.(png|jpg|gif|svg)$/,
  37. loader: 'file-loader',
  38. options: {
  39. name: '[name].[ext]?[hash]'
  40. }
  41. }
  42. ]
  43. },
  44. resolve: {
  45. alias: {
  46. 'vue$': 'vue/dist/vue.esm.js'
  47. },
  48. extensions: ['*', '.js', '.vue', '.json']
  49. },
  50. devServer: {
  51. historyApiFallback: true,
  52. noInfo: true,
  53. overlay: true
  54. },
  55. performance: {
  56. hints: false
  57. },
  58. devtool: '#eval-source-map'
  59. }
  60. if (process.env.NODE_ENV === 'production') {
  61. module.exports.devtool = '#source-map'
  62. // http://vue-loader.vuejs.org/en/workflow/production.html
  63. module.exports.plugins = (module.exports.plugins || []).concat([
  64. new webpack.DefinePlugin({
  65. 'process.env': {
  66. NODE_ENV: '"production"'
  67. }
  68. }),
  69. new webpack.optimize.UglifyJsPlugin({
  70. sourceMap: true,
  71. compress: {
  72. warnings: false
  73. }
  74. }),
  75. new webpack.LoaderOptionsPlugin({
  76. minimize: true
  77. })
  78. ])
  79. }