无法解决'C:Portal\node_modulesstring_decodernode_modulessafe-buffer'中的'buffer'



我正在尝试构建我的角度项目,结果出现以下错误:

Build Command: node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng build --prod

我的Angular版本是:@Angular/cli:"^8.2.2".

我尝试重新安装nodejs 12.13并删除npm缓存,但它仍然不能正常工作

错误:-

ERROR in ./node_modules/string_decoder/node_modules/safe-buffer/index.js
Module not found: Error: Can't resolve 'buffer' in 

我通过安装缺失的模块使其正常工作。

npm install assert --save
npm install buffer --save

答复来自https://github.com/sindresorhus/file-type/issues/417.

"browser": {
"buffer": false
}

在你的包中.json应该做到这一点。

这是React中对我有效的解决方案。您需要找到您的webpack.config.js文件。对我来说,它位于:./node_modules/react-scripts/config

在遇到这个错误以及许多其他相关错误时,我在文件的resolve对象中执行了以下操作:

  1. 删除modules
  2. 添加fallback: {},

由于与此问题有关,您需要使用npm install buffer安装buffer包,并调整回退对象属性,使其显示为:

fallback: {
"buffer": require.resolve('buffer'),
}, 

您可能需要使用npm install webpack@latest升级到webpack 5

另一个解决方案似乎是使用react-app-rewired来实现对webpack的这些更改。据我所知,它做了同样的事情,但通过上述方法,我能够熟悉这个问题,而不会完全绕过它,也不会增加额外的复杂性。

最新更新