Files
pybricks-code/craco.config.js
T
David Lechner 3943f149a5 update @shopify/react-i18n
Requires special handling since they are using .esnext file extension
for some reason.
2021-01-08 20:39:15 -06:00

55 lines
1.7 KiB
JavaScript

// https://github.com/gsoft-inc/craco/blob/master/packages/craco/README.md#configuration
const { getLoader, getLoaders, loaderByName } = require('@craco/craco');
module.exports = {
webpack: {
configure: {
resolve: {
// need 'esnext' first to avoid compile errors
mainFields: ['esnext', 'browser', 'module', 'main'],
},
},
},
plugins: [
{
plugin: {
overrideWebpackConfig: ({
webpackConfig,
cracoConfig,
pluginOptions,
context: { env, paths },
}) => {
// add .esnext file extension for @shopify/*
webpackConfig.resolve.extensions = [
'.web.esnext',
'.esnext',
...webpackConfig.resolve.extensions,
];
const babelLoaders = getLoaders(
webpackConfig,
loaderByName('babel-loader'),
);
babelLoaders.matches[0].loader.test = /\.(esnext|js|mjs|jsx|ts|tsx)$/;
babelLoaders.matches[1].loader.test = /\.(esnext|js|mjs)$/;
const fileLoader = getLoader(
webpackConfig,
loaderByName('file-loader'),
);
fileLoader.match.loader.exclude = [
/\.(esnext|js|mjs|jsx|ts|tsx)$/,
/\.html$/,
/\.json$/,
];
return webpackConfig;
},
},
options: {},
},
],
};