dev.config.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. /* eslint-disable no-undef */
  2. const path = require('path');
  3. const webpack = require('webpack');
  4. module.exports = {
  5. devtool: 'cheap-module-source-map',
  6. entry: {
  7. 'DPlayer': './src/index.js'
  8. },
  9. output: {
  10. path: path.resolve(__dirname, '..', 'dist'),
  11. filename: '[name].js',
  12. library: '[name]',
  13. libraryTarget: 'umd',
  14. umdNamedDefine: true,
  15. publicPath: '/'
  16. },
  17. resolve: {
  18. modules: ['node_modules'],
  19. extensions: ['.js', '.scss']
  20. },
  21. module: {
  22. strictExportPresence: true,
  23. rules: [
  24. {
  25. test: /\.js$/,
  26. enforce: 'pre',
  27. loader: require.resolve('eslint-loader'),
  28. include: path.resolve(__dirname, '../src'),
  29. },
  30. {
  31. test: /\.js$/,
  32. use: [
  33. {
  34. loader: require.resolve('babel-loader'),
  35. options: {
  36. cacheDirectory: true,
  37. presets: ['env']
  38. }
  39. }
  40. ]
  41. },
  42. {
  43. test: /\.scss$/,
  44. use: [
  45. require.resolve('style-loader'),
  46. {
  47. loader: require.resolve('css-loader'),
  48. options: {
  49. importLoaders: 1
  50. }
  51. },
  52. {
  53. loader: require.resolve('postcss-loader'),
  54. options: {
  55. config: {
  56. path: path.join(__dirname, 'postcss.config.js')
  57. }
  58. }
  59. },
  60. require.resolve('sass-loader')
  61. ]
  62. },
  63. {
  64. test: /\.(png|jpg)$/,
  65. loader: require.resolve('url-loader'),
  66. options: {
  67. 'limit': 40000
  68. }
  69. }
  70. ]
  71. },
  72. devServer: {
  73. compress: true,
  74. contentBase: path.resolve(__dirname, '..', 'demo'),
  75. clientLogLevel: 'none',
  76. quiet: false,
  77. open: true,
  78. historyApiFallback: {
  79. disableDotRule: true
  80. },
  81. watchOptions: {
  82. ignored: /node_modules/
  83. }
  84. },
  85. plugins: [
  86. new webpack.NamedModulesPlugin(),
  87. new webpack.DefinePlugin({
  88. DPLAYER_VERSION: `"${require('../package.json').version}"`
  89. })
  90. ],
  91. node: {
  92. dgram: 'empty',
  93. fs: 'empty',
  94. net: 'empty',
  95. tls: 'empty'
  96. },
  97. performance: {
  98. hints: false
  99. }
  100. };