webpack.config.js 2.0 KB

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