webpack.config.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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. enforce: 'pre',
  49. test: /\.js$/,
  50. loader: 'eslint-loader',
  51. include: APP_PATH,
  52. options: {
  53. configFile: './.eslintrc'
  54. },
  55. },
  56. {
  57. test: /\.js$/,
  58. loader: 'babel-loader',
  59. include: APP_PATH,
  60. options: {
  61. presets: ['es2015']
  62. }
  63. },
  64. {
  65. test: /\.scss$/,
  66. use: dev ? ['style-loader', 'css-loader', 'postcss-loader', 'sass-loader'] : ExtractTextPlugin.extract({
  67. use: ['css-loader?minimize&-autoprefixer', 'postcss-loader', 'sass-loader']
  68. }),
  69. include: APP_PATH
  70. },
  71. {
  72. test: /\.(png|jpg)$/,
  73. loader: 'url-loader?limit=40000'
  74. }
  75. ]
  76. },
  77. plugins: plugins
  78. };