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

Vue+Laravel项目执行npm run prod遇openssl初始化错误求解决

修复Node.js 17+下npm run prod的ERR_OSSL_EVP_UNSUPPORTED错误

方法1:调整package.json的scripts命令

检查你的scripts中prod命令的参数位置,必须把--openssl-legacy-provider加到node启动命令前,而非直接附加在mix命令后。根据Laravel Mix的常见配置,修改后的scripts示例如下:

"scripts": {
    "dev": "node --openssl-legacy-provider node_modules/webpack/bin/webpack.js --mode development --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "node --openssl-legacy-provider node_modules/webpack/bin/webpack.js --mode production --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "node --openssl-legacy-provider node_modules/webpack/bin/webpack.js --mode development --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
}

如果你的prod命令原本是调用mix脚本(如"prod": "mix production"),则修改为:

"prod": "node --openssl-legacy-provider node_modules/.bin/mix production"

方法2:通过环境变量临时指定参数

执行prod命令前先设置环境变量,不同系统写法不同:

  • Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider && npm run prod
  • Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm run prod
  • Linux/macOS:
NODE_OPTIONS=--openssl-legacy-provider npm run prod

方法3:降级Node.js版本

若不想修改配置,可直接降级到Node.js 16.x LTS版本,该版本默认使用OpenSSL 1.1.1,不存在此兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:40:27