webpack.config.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. var webpack = require('webpack');
  2. var path = require('path');
  3. var autoprefixer = require('autoprefixer');
  4. var ExtractTextPlugin = require('extract-text-webpack-plugin');
  5. var libraryName = 'DPlayer';
  6. var env = process.env.WEBPACK_ENV;
  7. var ROOT_PATH = path.resolve(__dirname);
  8. var APP_PATH = path.resolve(ROOT_PATH, 'src');
  9. var BUILD_PATH = path.resolve(ROOT_PATH, 'dist');
  10. var dev = env === 'dev';
  11. var plugins = [].concat(dev ? [] : [
  12. new webpack.optimize.UglifyJsPlugin({
  13. sourceMap: true,
  14. compressor: {
  15. warnings: false,
  16. conditionals: true,
  17. unused: true,
  18. comparisons: true,
  19. sequences: true,
  20. dead_code: true,
  21. evaluate: true,
  22. if_return: true,
  23. join_vars: true,
  24. negate_iife: false
  25. },
  26. output: {
  27. comments: false
  28. }
  29. }),
  30. new ExtractTextPlugin(`${libraryName}.min.css`)
  31. ]);
  32. module.exports = {
  33. entry: './src/' + libraryName + '.js',
  34. output: {
  35. path: BUILD_PATH,
  36. filename: libraryName + '.min.js',
  37. library: libraryName,
  38. libraryTarget: 'umd',
  39. umdNamedDefine: true
  40. },
  41. devtool: dev ? 'eval-source-map' : 'source-map',
  42. devServer: {
  43. publicPath: "/dist/",
  44. },
  45. module: {
  46. rules: [
  47. {
  48. test: /\.js$/,
  49. loader: 'babel-loader',
  50. include: APP_PATH,
  51. options: {
  52. presets: ['es2015']
  53. }
  54. },
  55. {
  56. test: /\.scss$/,
  57. use: dev ? ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'] : ExtractTextPlugin.extract({
  58. use: ['css-loader?minimize&-autoprefixer', 'postcss-loader', 'sass-loader']
  59. }),
  60. include: APP_PATH
  61. },
  62. {
  63. test: /\.(png|jpg)$/,
  64. loader: 'url-loader?limit=40000'
  65. }
  66. ]
  67. },
  68. plugins: plugins
  69. };