背景
Vue2+ElementUI腳手架項目涣易,啟動的時候報下列錯誤
vue-cli-service serve
INFO Starting development server...
95% emitting CompressionPlugin ERROR Error: error:0308010C:digital envelope routines::unsupported
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
原因
第一感覺就是node版本的問題垄开,因為本地node版本用的算是比較新的,用的18.8.2版本腐芍。經(jīng)過查詢相關資料秦躯,發(fā)現(xiàn)是node17以后OpenSSL3.0對允許算法和密鑰大小增加了嚴格的限制件蚕,由此造成的影響。既然找到了問題解決辦法無外乎使用低版本node版本和解決openssl的兼容問題
解決辦法
方法1 安裝node版本管理器 n夜赵,切換到低版本node運行此項目
npm install -g n
n 16.20.1 //安裝node 16明棍,此處可以安裝自己想用的版本
n use 16.20.1
方法2 設置環(huán)境變量,規(guī)避openssl問題
1油吭、臨時環(huán)境變量的方式
// macos或者linux
export NODE_OPTIONS=--openssl-legacy-provider
//windows
set NODE_OPTIONS=--openssl-legacy-provider
2击蹲、在vue項目的package.json中配置
"scripts": {
"dev": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:stage": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build --mode staging"
}
原文鏈接:https://blog.csdn.net/wjwei113/article/details/135607189