dev.config.js 1.9 KB

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