main.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const path = require('path')
  2. const MiniCssExtractPlugin = require('mini-css-extract-plugin')
  3. // NOTE: must be set before webpack config is imported
  4. process.env.SHARELATEX_CONFIG = path.resolve(
  5. __dirname,
  6. '../config/settings.webpack.js'
  7. )
  8. const customConfig = require('../webpack.config.dev')
  9. module.exports = {
  10. stories: [
  11. '../frontend/stories/**/*.stories.js',
  12. '../modules/**/stories/**/*.stories.js',
  13. ],
  14. addons: ['@storybook/addon-essentials', '@storybook/addon-a11y'],
  15. webpackFinal: storybookConfig => {
  16. // Combine Storybook's webpack loaders with our webpack loaders
  17. const rules = [
  18. // Filter out the Storybook font file loader, which overrides our font
  19. // file loader causing the font to fail to load
  20. ...storybookConfig.module.rules.filter(
  21. rule => !rule.test.toString().includes('woff')
  22. ),
  23. // Replace the LESS rule, and the CSS rule which conflicts with the built-in CSS loader
  24. ...customConfig.module.rules.filter(
  25. rule =>
  26. !rule.test.toString().includes('less') &&
  27. !rule.test.toString().includes('css')
  28. ),
  29. {
  30. test: /\.less$/,
  31. use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader'],
  32. },
  33. ]
  34. // Combine Storybook's webpack plugins with our webpack plugins
  35. const plugins = [...storybookConfig.plugins, ...customConfig.plugins]
  36. return {
  37. ...storybookConfig,
  38. module: {
  39. ...storybookConfig.module,
  40. rules,
  41. },
  42. plugins,
  43. }
  44. },
  45. }