Laravel9+Vue3项目执行npm run dev报openssl错误的快速解决方法
解决Laravel 9 + Vue 3项目npm run dev的ERR_OSSL_EVP_UNSUPPORTED错误
问题根源是Node.js 16+版本默认禁用了旧版OpenSSL算法,而Laravel 9默认使用Vite构建工具(而非vue-cli),所以你之前针对vue-cli的配置无效。以下是无需降级Node的解决方法:
临时单次运行(无需修改配置)
根据操作系统执行对应命令:
- Linux/macOS:
NODE_OPTIONS=--openssl-legacy-provider npm run dev - Windows(CMD):
set NODE_OPTIONS=--openssl-legacy-provider && npm run dev - Windows(PowerShell):
$env:NODE_OPTIONS="--openssl-legacy-provider"; npm run dev
永久配置到package.json
修改项目根目录下的package.json中scripts字段,适配Vite命令:
针对Linux/macOS:
"scripts": { "dev": "NODE_OPTIONS=--openssl-legacy-provider vite", "build": "NODE_OPTIONS=--openssl-legacy-provider vite build", "preview": "NODE_OPTIONS=--openssl-legacy-provider vite preview" }
针对Windows(CMD):
"scripts": { "dev": "set NODE_OPTIONS=--openssl-legacy-provider && vite", "build": "set NODE_OPTIONS=--openssl-legacy-provider && vite build", "preview": "set NODE_OPTIONS=--openssl-legacy-provider && vite preview" }
跨平台通用方案(需安装cross-env)
先安装跨环境变量工具:
npm install cross-env --save-dev
再修改package.json:
"scripts": { "dev": "cross-env NODE_OPTIONS=--openssl-legacy-provider vite", "build": "cross-env NODE_OPTIONS=--openssl-legacy-provider vite build", "preview": "cross-env NODE_OPTIONS=--openssl-legacy-provider vite preview" }
修改完成后,直接执行npm run dev即可正常启动项目。
内容的提问来源于stack exchange,提问作者Sammy
相关产品推荐
相关产品推荐

