More than 1 year has passed since last update.

posted at

updated at

Node.js v17 で webpack error

digital envelope routines::unsupported

Node.js が v17 になって以降(2021年10月19日) 、webpack (v5) で次のようなエラーがでるようになりました。

Webpack in development mode
[webpack-cli] Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
<anonymous>:6:1) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',

OpenSSL 3.0 のハッシュ関数に関する問題のようですが、webpack.config.js に「output.hashFunction: "xxhash64"」を追加すると、とりあえずビルドできます。

const config = {
	output: {
		hashFunction: "xxhash64",

別の方法として、node の実行時オプションに「--openssl-legacy-provider」を追加してもOKです。この場合は、次のように環境変数を定義するのが簡単です。

export NODE_OPTIONS=--openssl-legacy-provider

なお、この問題は webpack の v6 で修正されるようです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up