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

Angular项目执行ng s启动时出现ERR_OSSL_EVP_UNSUPPORTED错误的持久解决方案咨询

Angular项目执行ng s启动时出现ERR_OSSL_EVP_UNSUPPORTED错误的持久解决方案咨询

我来帮你搞定这个每次启动都要手动输命令的麻烦问题!

首先,这个ERR_OSSL_EVP_UNSUPPORTED错误是因为Node.js v17及以上版本默认启用了新的OpenSSL算法,但你的Webpack版本暂时还不兼容这个新算法,所以需要指定使用旧的OpenSSL提供程序才能正常启动项目。

下面给你几个持久化的解决方案,选一个适合你的就行:

方案1:修改项目的package.json脚本(推荐,团队协作友好)

打开项目根目录的package.json文件,找到scripts里对应的启动命令(一般是start,对应ng s),把它修改成:

"scripts": {
  "start": "NODE_OPTIONS=--openssl-legacy-provider ng s",
  // 其他脚本...
}

如果是Windows系统,需要用set命令来设置环境变量,改成下面这样:

"scripts": {
  "start": "set NODE_OPTIONS=--openssl-legacy-provider && ng s",
  // 其他脚本...
}

之后你只要运行npm start,就会自动带上这个环境变量,不用每次手动输入命令了。

方案2:设置全局环境变量(个人所有项目生效)

如果你希望这个配置对自己电脑上的所有Node.js项目都生效,可以设置全局环境变量:

  • macOS/Linux:
    打开终端,编辑你的shell配置文件(比如~/.zshrc、~/.bashrc或者~/.profile,根据你用的shell选择),添加一行:

    export NODE_OPTIONS=--openssl-legacy-provider
    

    保存后运行source ~/.zshrc(对应你编辑的文件名),重启终端后配置就会自动生效。

  • Windows:

    1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
    2. 在「用户变量」区域点击「新建」,变量名填NODE_OPTIONS,变量值填--openssl-legacy-provider
    3. 点击确定保存,重启所有终端窗口后生效。

方案3:使用项目级的.npmrc文件

在项目根目录创建一个.npmrc文件,添加一行内容:

node-options=--openssl-legacy-provider

这样npm在运行任何脚本时都会自动读取这个配置,不用修改package.json也能生效。

备注:内容来源于stack exchange,提问作者Mohanad Gadallah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:52:59