main.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { createRequire } from "node:module";
  2. import type { StorybookConfig } from "@storybook/nextjs";
  3. const resolve = createRequire(import.meta.url).resolve;
  4. const config = {
  5. framework: "@storybook/nextjs",
  6. stories: [
  7. "../src/**/*.mdx",
  8. "../src/**/?(*.)story.tsx",
  9. "../src/**/?(*.)stories.tsx",
  10. ],
  11. features: {
  12. backgroundsStoryGlobals: true,
  13. },
  14. addons: [
  15. "@storybook/addon-essentials",
  16. "@storybook/addon-themes",
  17. {
  18. name: "@storybook/addon-styling-webpack",
  19. options: {
  20. rules: [
  21. {
  22. test: /\.s[ac]ss$/i,
  23. use: [
  24. "style-loader",
  25. {
  26. loader: "css-loader",
  27. options: {
  28. modules: {
  29. auto: true,
  30. localIdentName: "[name]__[local]--[hash:base64:5]",
  31. },
  32. importLoaders: 1,
  33. esModule: false,
  34. },
  35. },
  36. {
  37. loader: "sass-loader",
  38. options: { implementation: resolve("sass") },
  39. },
  40. ],
  41. },
  42. ],
  43. },
  44. },
  45. ],
  46. webpackFinal: (config) => ({
  47. ...config,
  48. resolve: {
  49. ...config.resolve,
  50. extensionAlias: {
  51. ".js": [".js", ".ts", ".tsx"],
  52. },
  53. },
  54. }),
  55. } satisfies StorybookConfig;
  56. export default config;