.webpackrc.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. const path = require('path');
  2. export default {
  3. entry: 'src/index.js',
  4. extraBabelPlugins: [['import', { libraryName: 'antd', libraryDirectory: 'es', style: true }]],
  5. env: {
  6. development: {
  7. extraBabelPlugins: ['dva-hmr'],
  8. },
  9. },
  10. externals: {
  11. '@antv/data-set': 'DataSet',
  12. bizcharts: 'BizCharts',
  13. rollbar: 'rollbar',
  14. },
  15. alias: {
  16. components: path.resolve(__dirname, 'src/components/'),
  17. },
  18. externals: {
  19. '@antv/data-set': 'DataSet',
  20. bizcharts: 'BizCharts',
  21. rollbar: 'rollbar',
  22. },
  23. ignoreMomentLocale: true,
  24. theme: './src/theme.js',
  25. html: {
  26. template: './src/index.ejs',
  27. },
  28. publicPath: '/',
  29. disableDynamicImport: true,
  30. hash: true,
  31. lessLoaderOptions: {
  32. javascriptEnabled: true,
  33. },
  34. cssLoaderOptions: {
  35. modules: true,
  36. getLocalIdent: (context, localIdentName, localName) => {
  37. if (context.resourcePath.includes('node_modules')) {
  38. return localName;
  39. }
  40. let antdProPath = context.resourcePath.match(/src(.*)/)[1].replace('.less', '');
  41. if (context.resourcePath.includes('components')) {
  42. antdProPath = antdProPath.replace('components/', '');
  43. }
  44. const arr = antdProPath
  45. .split('/')
  46. .map(a => a.replace(/([A-Z])/g, '-$1'))
  47. .map(a => a.toLowerCase());
  48. return `antd-pro${arr.join('-')}-${localName}`.replace('--', '-');
  49. },
  50. },
  51. };