Package Exports
- @storybook/addon-storysource
- @storybook/addon-storysource/loader
- @storybook/addon-storysource/register
- @storybook/addon-storysource/register.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@storybook/addon-storysource) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Storybook Storysource Addon
This addon is used to show stories source in the addon panel.

Getting Started
First, install the addon
yarn add @storybook/addon-storysource --devAdd this line to your addons.js file
import '@storybook/addon-storysource/register';Use this hook to a custom webpack.config. This will generate a decorator call in every story:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.jsx?$/,
loaders: [require.resolve('@storybook/addon-storysource/loader')],
enforce: 'pre',
});
return config;
};Loader 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- defaulttypescriptflow
Usage:
module.exports = function({ config }) {
config.module.rules.push({
test: /\.stories\.jsx?$/,
loaders: [
{
loader: require.resolve('@storybook/addon-storysource/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?$/,
loaders: [
{
loader: require.resolve('@storybook/addon-storysource/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?$/,
loaders: [
{
loader: require.resolve('@storybook/addon-storysource/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?$/,
loaders: [
{
loader: require.resolve('@storybook/addon-storysource/loader'),
options: { injectDecorator: false },
},
],
enforce: 'pre',
});
return config;
};