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
次の図に示すように、環境の実行命令を構成します。