-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
49 lines (42 loc) · 1.25 KB
/
main.js
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
42
43
44
45
46
47
48
49
const path = require('path');
module.exports = {
addons: [
'@storybook/addon-actions',
'@storybook/addon-controls',
'@storybook/addon-a11y',
'@storybook/addon-toolbars',
'storybook-addon-next',
],
stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
staticDirs: ['../public'],
core: {
builder: 'webpack5',
},
webpackFinal: async (config, { configType }) => {
config.resolve.modules = [path.resolve(__dirname, '../src'), 'node_modules'];
const imageRule = config.module.rules.find(rule => rule.test.test('.svg'));
imageRule.exclude = /\.svg$/;
// Import `svg` files as React components
config.module.rules.push({
test: /\.svg$/,
resourceQuery: { not: [/url/] },
use: [{ loader: '@svgr/webpack', options: { svgo: false } }],
});
// Import videos, models, hdrs, and fonts
config.module.rules.push({
test: /\.(mp4|hdr|glb|woff|woff2)$/i,
type: 'asset/resource',
});
// Force url import with `?url`
config.module.rules.push({
resourceQuery: /url/,
type: 'asset/resource',
});
// Import `.glsl` shaders
config.module.rules.push({
test: /\.glsl$/,
type: 'asset/source',
});
return config;
},
};