npm run dev が vue プロジェクトを実行した後、エラー: エラー: 0308010C: デジタル エンベロープ ルーチン:: サポートされていません (プロテストは有効です)

npm run dev が vue プロジェクトを実行した後、エラー: エラー: 0308010C: デジタル エンベロープ ルーチン:: サポートされていません (プロテストは有効です)

01. 質問

1. vue プロジェクトがターミナルでコマンド npm run dev を入力した後、vue プロジェクトは実行できず、下の図に示すように、コンソールに一連のエラーが表示されます。

エラーメッセージ

2. このプロジェクトの npm バージョンは 6.14.10、ノード バージョンは v17.6.0 です。

02. 問題分析

1. このエラーは、通常、OpenSSL がデータを暗号化および復号化するときにサポートされていない暗号化アルゴリズムです。
2. caniuse-lite データベースを更新するか、OpenSSL バージョンをアップグレードします (非推奨)。

次のコマンドを実行して、caniuse-lite データベースを更新します。

npx browserslist@latest --update-db

OpenSSL バージョンをアップグレードするには、次の手順を参照して OpenSSL をアップグレードします。

OpenSSL for Windows インストール パッケージをダウンロードします https://slproweb.com/products/Win32OpenSSL.html

Windows 用の OpenSSL をインストールする

コマンド プロンプトまたは PowerShell を開き、次のコマンドで環境変数を設定します。

set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
set PATH=C:\OpenSSL-Win32\bin;%PATH%
ここで、C:\OpenSSL-Win32 は OpenSSL for Windows がインストールされているパスです。

3. ノードのバージョンを 16 未満に減らします (npm のバージョンもノードのバージョンの影響を受けるため、お勧めしません。ノードのバージョンをアップグレードした後、npm のバージョンに互換性がなくなり、一部の依存関係をインストールできない場合があります)。

03. ソリューション

1. コマンドを使用して NODE_OPTIONS パラメータを設定し、現在の vue プロジェクトのターミナルに入力するだけです (ただし、プロジェクトを実行する前にコマンドを 1 回実行する必要があります)。

Windows システム:

NODE_OPTIONS=–openssl-legacy-provider を設定します

Linux または Mac システム:

export NODE_OPTIONS=–openssl-legacy-provider

2. package.json を修正し、実行中のコマンドの設定項目に set NODE_OPTIONS=–openssl-legacy-provider を追加 (1.の欠点を解決するため)
set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve 

次の図に示すように、環境の実行命令を構成します。
コマンドを実行

おすすめ

転載: blog.csdn.net/mrliucx/article/details/130152210