gatsby-plugin-ueno
Version:
Adds opinionated features to Gatsby
53 lines (48 loc) • 1.36 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
function onCreateBabelConfig({
actions
}) {
actions.setBabelPlugin({
name: '@babel/plugin-proposal-decorators',
options: {
legacy: true
}
});
}
function onCreateWebpackConfig({
stage,
actions,
loaders
}, _ref) {
let sassOptions = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["postCssPlugins"]);
const PRODUCTION = stage !== 'develop';
const isSSR = stage.includes('html');
const sassLoader = {
loader: require.resolve('sass-loader'),
options: Object.assign({
sourceMap: !PRODUCTION
}, sassOptions)
};
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']
}
});
}
exports.onCreateBabelConfig = onCreateBabelConfig;
exports.onCreateWebpackConfig = onCreateWebpackConfig;