找不到模块:错误:可以解决' t Resolve' crypto' webpack< 5用于默认情况下包括node.js核心模块的polyfills

发布于 2025-01-23 06:31:52 字数 923 浏览 6 评论 0原文

我试图使用NPM运行构建来构建React项目,但由于以下消息而失败。

❯ npm run build

> [email protected] build
> react-scripts build

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'crypto' in '/Users/...../node_modules/web3-eth-accounts/lib'
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: { "crypto": require.resolve("crypto-browserify") }'
        - install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "crypto": false }

I was trying to build the react project using npm run build but it failed with the following messages.

❯ npm run build

> [email protected] build
> react-scripts build

Creating an optimized production build...
Failed to compile.

Module not found: Error: Can't resolve 'crypto' in '/Users/...../node_modules/web3-eth-accounts/lib'
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: { "crypto": require.resolve("crypto-browserify") }'
        - install 'crypto-browserify'
If you don't want to include a polyfill, you can use an empty module like this:
        resolve.fallback: { "crypto": false }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

穿越时光隧道 2025-01-30 06:31:52

我尝试使用这些命令来配置config-overrides.js webpack.config.js
(感谢答案

webpack.config.js:

module.exports = {
  resolve: {
    fallback: { crypto: false },
  },
};

但是,我'M仍然收到相同的错误。

稍后,我发现默认react-scripts捆绑在node_module中包含其自己的webpack.config.js,并且可能会干扰我的。不确定这个TBH。如果有人可以解释会很好。

最终,我更改了package.json中的“脚本”,错误最终消失了

  "scripts": {
    "start": "NODE_ENV=production node_modules/react-scripts/bin/react-scripts.js start",
    "build": "NODE_ENV=production node_modules/react-scripts/bin/react-scripts.js build",
    ....
  },

I tried to configure config-overrides.js and webpack.config.js with these commands
(thanks to answer)

webpack.config.js:

module.exports = {
  resolve: {
    fallback: { crypto: false },
  },
};

However, I'm still receiving the same error.

Later on, I found that the default react-scripts bundled in node_module contains it's own webpack.config.js and it may interfere with mine. Not sure about this tbh. Would be nice if someone can explain.

And eventually, I changed the "scripts" in package.json to this and the error finally disappeared

  "scripts": {
    "start": "NODE_ENV=production node_modules/react-scripts/bin/react-scripts.js start",
    "build": "NODE_ENV=production node_modules/react-scripts/bin/react-scripts.js build",
    ....
  },
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文