umi プロジェクトがエラー node:internal/crypto/hash:71this[kHandle] = new _Hash(algorithm, xofLen); を開始します。

エラーのスクリーンショット:

ここに画像の説明を挿入

理由:

これは、node.js のバージョンの問題です。OpenSSL3.0 は、node.js V17 の初期バージョンでリリースされており、OpenSSL3.0 では、許可されるアルゴリズムとキー サイズに厳しい制限が追加されており、エコシステムに何らかの影響を与える可能性があります。したがって、以前のプロジェクトは、nodejs V17 以降を使用した後にエラーを報告します。

解決策 1 (推奨):

package.jsonを変更し、関連するビルドコマンドの前に追加します

SET NODE_OPTIONS=--openssl-legacy-provider 

ここに画像の説明を挿入
これは一度だけ行うことができ、将来的には npm を介してスクリプト内のコマンドを直接実行できます。プロジェクトの反復でもチーム開発でも、これはより効果的です。

解決策 2:

プロジェクトを開始して開始コマンドを入力するたびに、まずコマンド ラインに SET NODE_OPTIONS=–openssl-legacy-provider と入力し、Enter キーを押してから、npm start コマンド npm start を入力します。

NODE_OPTIONS=--openssl-legacy-provider
npm start

このアプローチは、実行するたびに SET NODE_OPTIONS=–openssl-legacy-provider を入力して、nodejs に最新の SSL3.0 を使用しないように、または古いバージョンを使用するように指示することです。

解決策 3:

つまり、nodejs バージョンはバージョン 16 にロールバックされ、直接実行できるようになります。

おすすめ

転載: blog.csdn.net/weixin_44442366/article/details/129730071