This repository has been archived by the owner on May 20, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
/
main.js
69 lines (60 loc) · 1.89 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
const path = require('path');
const theme = require('./theme')
const filterRules = filters => rule => {
return filters.some(filter => String(rule.test) === String(filter));
};
module.exports = {
theme,
stories: ['../stories/**/*.stories.js', '../src/slices/**/*.stories.js'],
// addons: ['@storybook/addon-knobs', '@storybook/addon-docs/'],
webpackFinal(config) {
//add addon-storysource
config.module.rules.push({
test: [/\.stories\.js$/, /index\.js$/],
loaders: [require.resolve('@storybook/source-loader')],
include: [path.resolve(__dirname, '../src')],
enforce: 'pre'
});
// allow SCSS
config.module.rules.push({
test: /\.scss$/,
loaders: ['style-loader', 'css-loader', 'sass-loader'],
include: path.resolve(__dirname, '../')
});
config.module.rules.push({
test: /\.vue$/,
include: path.resolve(__dirname),
loader: 'vue-loader',
})
// setup URL Alias
config.resolve.alias = {
...config.resolve.alias,
'@': path.resolve(__dirname, '../src')
};
const rules = config.module.rules;
const mdxRules = rules.filter(
filterRules([/\.mdx$/, /\.(stories|story).mdx$/])
);
let [jsxRule] = rules.filter(filterRules([/\.(mjs|jsx?)$/]));
mdxRules.forEach(mdxRule => {
const [babelLoader] = mdxRule.use.filter(
({
loader
}) => loader === 'babel-loader'
);
babelLoader.options.presets = babelLoader.options.presets.filter(
preset => !preset.includes('babel-preset-vue')
);
});
const [babelLoader] = jsxRule.use.filter(({
loader
}) => loader === 'babel-loader')
babelLoader.options = {
cacheDirectory: path.resolve(__dirname, '..', 'node_modules', '.cache', 'storybook'),
presets: ['@vue/app'],
babelrc: false
}
// config.plugins.push(new VueLoaderPlugin())
return config;
}
};