NodeJS 节点多边形填充和webpack.config.js的问题

lhcgjxsq  于 2022-12-22  发布在  Node.js
关注(0)|答案(1)|浏览(146)

我对Web开发比较陌生,但我正在做一个React项目,我正在尝试与AWS数据库连接。为了安装MySql,我运行了npm install mysql,它确实导入了模块,但是我现在得到了错误:
Module not found: Error: Can't resolve 'crypto' in '.\node_modules\mysql\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.
我读了很多关于Webpack的资料,现在我明白了我只需要添加一个后备,大概是在根文件夹下一个名为webpack.config.js的新文件中。然而,我做了这个后备,错误仍然存在。下面是我在文件中使用的确切代码:

module.exports = 
{
    entry:"/src/out.js",

    output:{
        path : "dist",
        filename: "bundle.js"
    },

    resolve: {
        fallback: {
          "fs": false,
          "tls": false,
          "net": false,
          "path": false,
          "zlib": false,
          "http": false,
          "https": false,
          "stream": false,
          "crypto": false,
          "crypto-browserify": false,
          "timers":false
        } 
      },
}

我做错了什么?看起来Webpack完全忽略了配置文件,是我写配置文件的方式有问题吗?
如果有帮助的话,我没有更改安装MySql模块的任何配置栏,并且为了导出/编译,我只使用npm start命令,该命令将它运行到本地主机。

kr98yfug

kr98yfug1#

使用node-polyfill-webpack-plugin重新添加对Node.js核心模块的支持:
并安装依赖项npm install crypto-browserifynpm install util
安装好包后,将以下内容添加到webpack.config.js中:

const NodePolyfillPlugin = require("node-polyfill-webpack-plugin")

module.exports = {
    resolve: {
      fallback: {
        // other fallbacks
         "util": require.resolve("util/"),
         "crypto": require.resolve("crypto-browserify")
      },
    }
    // Other rules...
    plugins: [
        new NodePolyfillPlugin()
    ]
}

相关问题