webpack < 5 used to include polyfills for node.js core modules by default

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
This is no longer the case. Verify if you need this module and configure a polyfill for it.

If you want to include a polyfill, you need to:
	- add a fallback 'resolve.fallback: { "os": require.resolve("os-browserify/browser") }'
	- install 'os-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
	resolve.fallback: {
    
     "os": false }
yarn add ode-polyfill-webpack-plugin

craco.config.js is as follows

//对webpack配置别名
//对webpack配置别名
const path = require('path')
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
module.exports = {
    
    
    // webpack 配置
    webpack: {
    
    
        // 配置别名
        alias: {
    
    
            // 约定:使用 @ 表示 src 文件所在路径
            '@': path.resolve(__dirname, './src'),
        },
        configure: (webpackConfig) => {
    
    
          if (webpackConfig.plugins) webpackConfig.plugins.push(new NodePolyfillPlugin({
    
    
            excludeAliases: ['console']
          }))
          else webpackConfig.plugins = [new NodePolyfillPlugin({
    
    
            excludeAliases: ['console']
          })]
          return webpackConfig
        }
    }
}

Guess you like

Origin blog.csdn.net/qq_16733389/article/details/131787880