forked from ueno-llc/ueno-gatsby-starter
/
gatsby-node.js
47 lines (44 loc) · 1.05 KB
/
gatsby-node.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
exports.onCreateBabelConfig = ({ actions }) => {
actions.setBabelPlugin({
name: '@babel/plugin-proposal-decorators',
options: {
legacy: true,
},
});
};
exports.onCreateWebpackConfig = (
{ stage, actions, loaders },
{ postCssPlugins, ...sassOptions },
) => {
const PRODUCTION = stage !== 'develop';
const isSSR = stage.includes('html');
const sassLoader = {
loader: require.resolve('sass-loader'),
options: {
sourceMap: !PRODUCTION,
sassOptions: {
...sassOptions,
outputStyle: 'compact',
},
},
};
actions.setWebpackConfig({
module: {
rules: [
{
test: /\.s(a|c)ss$/,
use: [
{ loader: require.resolve('classnames-loader') },
!isSSR && loaders.miniCssExtract(),
loaders.css({ modules: true, importLoaders: 2 }),
loaders.postcss({ plugins: postCssPlugins }),
sassLoader,
].filter(Boolean),
},
],
},
resolve: {
modules: ['src', 'node_modules'],
},
});
};