## 事象 [[webpack4]] (v4.46.0) と [[Node.js]]のv18でビルドすると以下のエラーが出る。 ``` node:internal/crypto/hash:71 this[kHandle] = new _Hash(algorithm, xofLen); ^ Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:71:19) at Object.createHash (node:crypto:133:10) at module.exports (C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\lib\util\createHash.js:135:53) at NormalModule._initBuildHash (C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\lib\NormalModule.js:417:16) at handleParseError (C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\lib\NormalModule.js:471:10) at C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\lib\NormalModule.js:503:5 at C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\lib\NormalModule.js:358:12 at C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\node_modules\loader-runner\lib\LoaderRunner.js:373:3 at iterateNormalLoaders (C:\Users\syoum\git\github.com\tadashi-aikawa\togowl\node_modules\webpack\node_modules\loader-runner\lib\LoaderRunner.js:214:10 ``` ## 原因 #todo ([[OpenSSL]]のバージョンが古い?) ## 解決方法 [[webpack5]]にアップデートする。もしそれができない場合は以下の回避策がある。 - [[Node.js]]のバージョンを16以下に下げる - `NODE_OPTIONS=--openssl-legacy-provider` オプションを指定する ## 参考 - [nodejs 17: digital envelope routines::unsupported · Issue \#14532 · webpack/webpack](https://github.com/webpack/webpack/issues/14532)