Webpack 4 - 无法执行 npm run watch 命令 - 错误:错误:0308010C:数字信封例程::不支持

问题描述 投票:0回答:1

我不是使用 Laravel Mix 的 Webpack 专家。我正在使用 Webpack 4 和 Laravel Mix 开发一个非常古老的项目。我知道最好的解决方案是升级所有软件包,但实际上我想让当前的解决方案运行起来。

我的开发机器上现在安装了 Node.js 版本 21。当我运行命令

npm run watch
进行开发时,我收到错误

错误:错误:0308010C:数字信封例程::不支持

我已经用谷歌搜索并找到了链接,告诉我,我需要向 Webpack 配置添加特殊配置

output.hashFunction = 'sha256'
output.hashFunction = 'sha512'

但是如何添加这个呢? 我在项目文件夹的根目录中有一个 webpack.mix.js 文件。 实际上看起来像这样:

let mix = require('laravel-mix');
mix.js([
        'resources/assets/js/app.js',
    ], 'public/js')
mix.react('resources/assets/js/app.jsx', 'public/js');

然后我尝试添加以下内容:

mix.webpackConfig({
    output: {
        hashFunction: 'sha512',
    },
});

但是错误还是一样

模块构建失败(来自 ./node_modules/babel-loader/lib/index.js): 错误:错误:0308010C:数字信封例程::不支持 在新哈希处(节点:内部/加密/哈希:68:19) 在Object.createHash(节点:加密:138:10)

如何更改 hashFunction?我不知道这是否能解决我最初的问题,但我需要测试一下。

我正在使用 Laravel Mix 和 Node.js 21。

node.js webpack laravel-mix
1个回答
1
投票

我找到了答案。我需要将以下代码放入我的

webpack.mix.js
文件中:

const crypto = require("crypto");
const crypto_orig_createHash = crypto.createHash;
crypto.createHash = algorithm => crypto_orig_createHash(algorithm == "md4" ? "sha256" : algorithm);
let mix = require('laravel-mix');
mix.js([
        'resources/assets/js/app.js',
    ], 'public/js')

mix.react('resources/assets/js/app.jsx', 'public/js');
© www.soinside.com 2019 - 2024. All rights reserved.