JSPM

@storybook/source-loader

0.0.0-pr-30727-sha-eefe2c70
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1597223
  • Score
    100M100P100Q200830F
  • License MIT

Source loader

Package Exports

    Readme

    Source Loader

    Storybook source-loader is a webpack loader that annotates Storybook story files with their source code. It powers the storysource and docs addons.

    Options

    The loader can be customized with the following options:

    parser

    The parser that will be parsing your code to AST (based on prettier)

    Allowed values:

    • javascript - default
    • typescript
    • flow

    Be sure to update the regex test for the webpack rule if utilizing Typescript files.

    Usage:

    module.exports = function ({ config }) {
      config.module.rules.push({
        test: /\.stories\.tsx?$/,
        use: [
          {
            loader: require.resolve('@storybook/source-loader'),
            options: { parser: 'typescript' },
          },
        ],
        enforce: 'pre',
      });
    
      return config;
    };

    prettierConfig

    The prettier configuration that will be used to format the story source in the addon panel.

    Defaults:

    {
      printWidth: 100,
      tabWidth: 2,
      bracketSpacing: true,
      trailingComma: 'es5',
      singleQuote: true,
    }

    Usage:

    module.exports = function ({ config }) {
      config.module.rules.push({
        test: /\.stories\.jsx?$/,
        use: [
          {
            loader: require.resolve('@storybook/source-loader'),
            options: {
              prettierConfig: {
                printWidth: 100,
                singleQuote: false,
              },
            },
          },
        ],
        enforce: 'pre',
      });
    
      return config;
    };

    uglyCommentsRegex

    The array of regex that is used to remove "ugly" comments.

    Defaults:

    [/^eslint-.*/, /^global.*/];

    Usage:

    module.exports = function ({ config }) {
      config.module.rules.push({
        test: /\.stories\.jsx?$/,
        use: [
          {
            loader: require.resolve('@storybook/source-loader'),
            options: {
              uglyCommentsRegex: [/^eslint-.*/, /^global.*/],
            },
          },
        ],
        enforce: 'pre',
      });
    
      return config;
    };

    injectDecorator

    Tell storysource whether you need inject decorator. If false, you need to add the decorator by yourself;

    Defaults: true

    Usage:

    module.exports = function ({ config }) {
      config.module.rules.push({
        test: /\.stories\.jsx?$/,
        use: [
          {
            loader: require.resolve('@storybook/source-loader'),
            options: { injectDecorator: false },
          },
        ],
        enforce: 'pre',
      });
    
      return config;
    };