const webpack = require('webpack'); const path = require('path'); module.exports = function override(config) { const fallback = config.resolve.fallback || {}; Object.assign(fallback, { crypto: require.resolve('crypto-browserify'), stream: require.resolve('stream-browserify'), assert: require.resolve('assert'), http: require.resolve('stream-http'), https: require.resolve('https-browserify'), os: require.resolve('os-browserify'), url: require.resolve('url'), vm: require.resolve('vm-browserify'), }); config.resolve.fallback = fallback; config.plugins = (config.plugins || []).concat([ new webpack.ProvidePlugin({ process: 'process/browser', Buffer: ['buffer', 'Buffer'], }), ]); const modules = config.resolve.modules; config.resolve.modules = [...modules, path.resolve(__dirname, 'src')]; config.module.rules.push({ test: /\.m?js/, resolve: { fullySpecified: false, }, }); return config; };