Webpack5 后带有 http-auth 的 NodeJS 应用程序崩溃

NodeJS app with http-auth crashes after Webpack5

我有一个大型 NodeJS 应用程序,在经过 Webpack-5 处理后运行良好。现在我添加了 http-auth 然后应用程序崩溃了。

https://github.com/MorganLindqvist/webpack5-http-auth-failure 上,您可以找到一个非常简约的应用程序版本,在 Webpack5 之后执行时会崩溃。

这是一个例子,说明它什么时候工作(没有 webpack 5),然后什么时候崩溃(有 webpack 5)。

git clone https://github.com/MorganLindqvist/webpack5-http-auth-failure.git
cd webpack5-http-auth-failure
npm install
node src/index.js

这正常工作,没有发生任何重要的事情。但是,如果使用 webpack5,它不会工作,而是会崩溃。

npm run build_dev
node dist/main.js

报错信息如下:

TypeError: Can not find node binding files from @node-rs/bcrypt-linux-x64-gnu, @node-rs/bcrypt-linux-x64-gnux32, @node-rs/bcrypt-linux-x64-musl and /home/user/webpack5-http-auth-failure/dist/bcrypt.linux-x64-gnu.node, /home/user/webpack5-http-auth-failure/dist/bcrypt.linux-x64-gnux32.node, /home/user/webpack5-http-auth-failure/dist/bcrypt.linux-x64-musl.node

安装 http-auth 时,我收到许多警告,如下所示:

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: @node-rs/bcrypt-android-arm64@1.2.1 (node_modules/@node-rs/bcrypt-android-arm64): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for @node-rs/bcrypt-android-arm64@1.2.1: wanted {"os":"android","arch":"arm64"} (current: {"os":"linux","arch":"x64"})

现在回答我的问题:这是 http-auth、webpack5 中的错误还是我这边的错误?

我一直在努力理解警告和错误,但在搜索类似问题时没有发现任何有用的信息。

正如我所说,我有一个大项目,它崩溃并出现与我删除所有内容时完全相同的错误,除了 index.js.

中的以下行
const auth = require("http-auth");

const basic = auth.basic({
  realm: "Docker registry",
  file: __dirname + "/../htpasswd"
});

碰巧,我今天 运行 进入这个问题并找到了您的问题,试图找到解决方案。

在尝试了一些不同的东西之后,我发现使用 4.1.2 版的 http-auth(而不是当前的 4.1.4,这是你的 package.json 在你的 GitHub 回购)为我工作。所以这似乎是较新的 http-auth 版本的错误。我 运行 你的代码在你的 github 仓库中,但是使用 http-auth 4.1.2 版本并且它 运行 成功。

我遇到了同样的问题,http-auth 4.1.5 版本修复了这个问题。