You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js v18运行Angular 8旧项目报错的解决办法咨询

Angular 8项目启动失败(ERR_OSSL_EVP_UNSUPPORTED)问题解决

问题背景

从GitHub下载旧Angular 8项目后,执行npm install安装依赖,运行ng serve时出现以下错误:

C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient>ng serve
10% building 3/3 modules 0 activei 「wds」: Project is running at http://localhost:4200/webpack-dev-server/
i 「wds」: webpack output is served from /
i 「wds」: 404s will fallback to //index.html
10% building 3/4 modules 1 active ...pack-dev-server\client\index.js?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-nodenode:internal/crypto/hash:69
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\util\createHash.js:135:53)
    at NormalModule._initBuildHash (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\NormalModule.js:412:16)
    at C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\NormalModule.js:444:10)
    at C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\NormalModule.js:320:13)
    at C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\loader-runner\lib\LoaderRunner.js:367:11)
    at C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\loader-runner\lib\LoaderRunner.js:203:19)
    at VirtualFileSystemDecorator.readFile (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\@ngtools\webpack\src\virtual_file_system_decorator.js:46:13)
    at processResource (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\loader-runner\lib\LoaderRunner.js:202:11)
    at iteratePitchingLoaders (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\loader-runner\lib\LoaderRunner.js:158:10)
    at runLoaders (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\loader-runner\lib\LoaderRunner.js:365:2)
    at NormalModule.doBuild (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\NormalModule.js:292:3)
    at NormalModule.build (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\NormalModule.js:438:15)
    at Compilation.buildModule (C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\Compilation.js:702:10)
    at C:\Users\Fozle Rabbi\Desktop\Folder GIt\AngularFuelSensor\FuelSensorClient\node_modules\webpack\lib\Compilation.js:944:14 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v18.20.3

错误核心原因是Angular 8依赖的旧版Webpack与Node.js 18默认启用的新加密算法不兼容。

用户问题

  1. 能否在Node.js v18环境下解决该错误?
  2. 若需降级Node.js,哪个版本最适配Angular 8项目?

解决方案

1. Node.js v18环境下的修复方法

通过设置环境变量让Node.js启用旧版加密算法兼容模式:

Windows(CMD命令行)

set NODE_OPTIONS=--openssl-legacy-provider
ng serve

Windows(PowerShell)

$env:NODE_OPTIONS="--openssl-legacy-provider"
ng serve

macOS/Linux

export NODE_OPTIONS=--openssl-legacy-provider
ng serve

永久配置:修改项目package.json的启动脚本,避免每次手动设置:

"scripts": {
  "start": "set NODE_OPTIONS=--openssl-legacy-provider && ng serve" // Windows环境
  // 或 "start": "export NODE_OPTIONS=--openssl-legacy-provider && ng serve" // macOS/Linux环境
}

之后直接运行npm start即可启动项目。

2. 适配Angular 8的Node.js版本

Angular 8官方推荐使用Node.js 10.x或12.x LTS版本,其中Node.js 12.x是更后期的LTS版本,兼容性和稳定性更好(优先选择12.22.12这类最终LTS版本)。

可以通过Node版本管理器(nvm)快速切换版本:

  • 安装nvm后执行:nvm install 12.22.12
  • 切换到该版本:nvm use 12.22.12

内容的提问来源于stack exchange,提问作者Fozle Rabbi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:57:32