dev.config.js 2.9 KB

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