mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-05 06:01:22 +08:00
51 lines
1.6 KiB
TypeScript
51 lines
1.6 KiB
TypeScript
import type { StorybookConfig } from './types';
|
|
|
|
export * from './types';
|
|
|
|
export const webpack: StorybookConfig['webpack'] = (config) => {
|
|
const rules = [
|
|
...(config.module?.rules || []),
|
|
{
|
|
test: [
|
|
new RegExp(`src(.*)\\.js$`),
|
|
new RegExp(`packages(\\/|\\\\)*(\\/|\\\\)src(\\/|\\\\)(.*)\\.js$`),
|
|
new RegExp(`node_modules(\\/|\\\\)lit\\/(.*)\\.js$`),
|
|
new RegExp(`node_modules(\\/|\\\\)lit-html(.*)\\.js$`),
|
|
new RegExp(`node_modules(\\/|\\\\)lit-element(.*)\\.js$`),
|
|
new RegExp(`node_modules(\\/|\\\\)@open-wc(.*)\\.js$`),
|
|
new RegExp(`node_modules(\\/|\\\\)@polymer(.*)\\.js$`),
|
|
new RegExp(`node_modules(\\/|\\\\)@vaadin(.*)\\.js$`),
|
|
],
|
|
use: {
|
|
loader: require.resolve('babel-loader'),
|
|
options: {
|
|
compact: false,
|
|
presets: [
|
|
[
|
|
require.resolve('@babel/preset-env'),
|
|
{
|
|
useBuiltIns: 'entry',
|
|
corejs: 3,
|
|
targets: { chrome: '100', esmodules: true },
|
|
},
|
|
],
|
|
],
|
|
plugins: [
|
|
require.resolve('@babel/plugin-syntax-dynamic-import'),
|
|
require.resolve('@babel/plugin-syntax-import-meta'),
|
|
// webpack does not support import.meta.url yet, so we rewrite them in babel
|
|
[require.resolve('babel-plugin-bundled-import-meta'), { importStyle: 'baseURI' }],
|
|
],
|
|
},
|
|
},
|
|
},
|
|
];
|
|
|
|
// eslint-disable-next-line no-param-reassign
|
|
config.module = config.module || {};
|
|
// eslint-disable-next-line no-param-reassign
|
|
config.module.rules = rules;
|
|
|
|
return config;
|
|
};
|