-
Notifications
You must be signed in to change notification settings - Fork 221
/
Copy pathmain.js
79 lines (65 loc) · 1.72 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
'use strict';
import { dirname, join } from 'path';
const { ProvidePlugin } = require('webpack');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const config = {
stories: [join(__dirname, '../packages/**/*.stories.{js,jsx,ts,tsx}')],
features: {
storyStoreV7: false
},
addons: [
getAbsolutePath('@storybook/addon-docs'),
getAbsolutePath('@storybook/addon-controls'),
getAbsolutePath('@storybook/addon-toolbars'),
getAbsolutePath('@storybook/addon-viewport'),
getAbsolutePath('@storybook/addon-styling-webpack'),
],
babel: async () => {
return {
presets: [
'@babel/preset-react',
'@babel/preset-typescript',
[
'@babel/preset-env',
{
targets: 'last 2 Chrome versions, last 2 Firefox versions, last 1 Safari version',
modules: 'commonjs',
},
],
],
};
},
webpackFinal: config => {
config.resolve.plugins = config.resolve.plugins || [];
config.resolve.plugins.push(new TsconfigPathsPlugin());
config.resolve.fallback = {
stream: false,
path: false,
process: false,
};
config.resolve.conditionNames = ['require', 'default'];
config.module.rules.push({
test: /\.m?js/,
resolve: {
fullySpecified: false,
},
});
config.plugins.push(
new ProvidePlugin({
process: require.resolve('process/browser'),
}),
);
return config;
},
framework: {
name: getAbsolutePath('@storybook/react-webpack5'),
options: {},
},
docs: {
autodocs: true,
},
};
function getAbsolutePath(value) {
return dirname(require.resolve(join(value, 'package.json')));
}
export default config;