forked from storybookjs/addon-webpack5-compiler-babel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpreset.ts
More file actions
41 lines (37 loc) · 1.04 KB
/
preset.ts
File metadata and controls
41 lines (37 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import type { Options } from "@storybook/types";
import type { Configuration } from "webpack";
import { resolvePathInStorybookCache } from "./utils.js";
const virtualModuleFiles = [
/storybook-config-entry\.js$/,
/storybook-stories\.js$/,
];
export const webpackFinal = async (config: Configuration, options: Options) => {
const babelOptions = await options.presets.apply("babel", {}, options);
const typescriptOptions = await options.presets.apply(
"typescript",
{},
options,
);
config.module = {
...(config.module || {}),
rules: [
...(config.module?.rules || []),
{
test: typescriptOptions.skipCompiler
? /\.((c|m)?jsx?)$/
: /\.((c|m)?(j|t)sx?)$/,
use: [
{
loader: require.resolve("babel-loader"),
options: {
cacheDirectory: resolvePathInStorybookCache("babel"),
...babelOptions,
},
},
],
exclude: [/node_modules/, ...virtualModuleFiles],
},
],
};
return config;
};