prod.config.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. const path = require('path');
  2. const webpack = require('webpack');
  3. const { GitRevisionPlugin } = require('git-revision-webpack-plugin');
  4. const gitRevisionPlugin = new GitRevisionPlugin();
  5. module.exports = {
  6. mode: 'production',
  7. bail: true,
  8. devtool: 'source-map',
  9. entry: {
  10. DPlayer: './src/js/index.js',
  11. },
  12. output: {
  13. path: path.resolve(__dirname, '..', 'dist'),
  14. filename: '[name].min.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', '.less'],
  24. fallback: {
  25. dgram: false,
  26. fs: false,
  27. net: false,
  28. tls: false,
  29. },
  30. },
  31. module: {
  32. strictExportPresence: true,
  33. rules: [
  34. {
  35. test: /\.js$/,
  36. use: [
  37. 'template-string-optimize-loader',
  38. {
  39. loader: 'babel-loader',
  40. options: {
  41. cacheDirectory: true,
  42. presets: ['@babel/preset-env'],
  43. },
  44. },
  45. ],
  46. },
  47. {
  48. test: /\.less$/,
  49. use: [
  50. 'style-loader',
  51. {
  52. loader: 'css-loader',
  53. options: {
  54. importLoaders: 1,
  55. },
  56. },
  57. {
  58. loader: 'postcss-loader',
  59. options: {
  60. postcssOptions: {
  61. plugins: ['postcss-preset-env'],
  62. },
  63. },
  64. },
  65. 'less-loader',
  66. ],
  67. },
  68. {
  69. test: /\.(png|jpg)$/,
  70. loader: 'url-loader',
  71. options: {
  72. limit: 40000,
  73. },
  74. },
  75. {
  76. test: /\.svg$/,
  77. loader: 'svg-inline-loader',
  78. },
  79. {
  80. test: /\.art$/,
  81. loader: 'art-template-loader',
  82. },
  83. ],
  84. },
  85. plugins: [
  86. new webpack.DefinePlugin({
  87. DPLAYER_VERSION: `"${require('../package.json').version}"`,
  88. GIT_HASH: JSON.stringify(gitRevisionPlugin.version()),
  89. }),
  90. ],
  91. };