使用Laragon运行Laravel 6时为何总是出现error:0308010C错误?
解决Laravel 6 + Vue项目npm run dev出现ERR_OSSL_EVP_UNSUPPORTED错误
这个错误是因为Node.js v18.8.0采用了新的OpenSSL加密算法,但Laravel 6配套的前端编译工具(如webpack、laravel-mix)版本较旧,不支持该算法,导致编译失败。以下是几种可行的解决方法:
方法一:临时添加环境变量兼容旧算法
在执行编译命令前添加NODE_OPTIONS=--openssl-legacy-provider参数,强制使用旧版OpenSSL算法:
- Windows(Laragon终端):
直接在终端运行:
或者修改项目根目录下的set NODE_OPTIONS=--openssl-legacy-provider && npm run devpackage.json,更新scripts里的dev命令:"dev": "set NODE_OPTIONS=--openssl-legacy-provider && cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" - Linux/macOS终端则把
set换成export即可。
方法二:降级Node.js版本
Laravel 6官方推荐的Node.js版本范围是12.x到14.x,你可以通过版本管理工具切换到该区间的稳定版本(比如14.21.3):
- 安装nvm(Windows用nvm-windows,Linux/macOS用nvm)
- 运行命令安装并切换版本:
nvm install 14.21.3 nvm use 14.21.3 - 重新执行
npm install && npm run dev即可正常编译。
方法三:升级laravel-mix版本(谨慎操作)
如果不想降级Node,可以尝试升级项目的laravel-mix到支持Node18的版本,但可能会引发其他依赖兼容问题,需要测试验证:
npm install laravel-mix@latest --save-dev
升级后可能需要调整webpack配置文件,确保和Laravel 6的项目结构匹配。
内容的提问来源于stack exchange,提问作者Dimas Aditya
相关产品推荐
相关产品推荐

