@kkt/resolve-fallback
Version:
This will modify the CRA ModuleScopePlugin plugin that prevents to import modules from outside the `src` directory.
33 lines (31 loc) • 1.02 kB
text/typescript
import webpack, { Configuration } from 'webpack';
export default function resolveFallback(conf: Configuration): Configuration {
if (!conf) {
throw Error('KKT:@kkt/resolve-fallback: there is no config found');
}
conf.resolve!.fallback = Object.assign(conf.resolve?.fallback || {}, {
assert: require.resolve('assert'),
buffer: require.resolve('buffer'),
fs: false,
path: require.resolve('path-browserify'),
crypto: require.resolve('crypto-browserify'),
http: require.resolve('stream-http'),
https: require.resolve('https-browserify'),
os: require.resolve('os-browserify/browser'),
stream: require.resolve('stream-browserify'),
url: require.resolve('url'),
});
conf.module?.rules?.unshift({
test: /\.m?js$/,
resolve: {
fullySpecified: false, // disable the behavior
},
});
conf.plugins = (conf.plugins || []).concat([
new webpack.ProvidePlugin({
process: 'process/browser',
Buffer: ['buffer', 'Buffer'],
}),
]);
return conf;
}