dev.config.js 3.0 KB

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