node升级带来的问题及解决方案(digital envelope routines::unsupported)

由于项目需要将 node版本从16升级到了18,但是原有的老项目还是使用的16的环境,导致在运行老版本的时候出现错误

错误信息如下

javascript 复制代码
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:133:10)
    at module.exports (D:\home\project\demo\vue-admin-better\node_modules\webpack\lib\util\createHash.js:135:53)
    at NormalModule._initBuildHash (D:\home\project\demo\vue-admin-better\node_modules\webpack\lib\NormalModule.js:417:16)

搜索得知,此为node17就有的bug,issue的解决方案是在 package.json文件中添加构建前指令 set NODE_OPTIONS=--openssl-legacy-provider

最终的结果如下

javascript 复制代码
"scripts": {
  "dev": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
  "build": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build",
  "build:stage": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service build --mode staging",

然后在 我的电脑 属性中 添加环境变量,很多人都说 配置完环境变量 要重启系统, 但是我自己的电脑,win11的系统,没有重启,就可以直接将项目跑起来。

名称:NODE OPTIONS

值:--openssl-legacy-provider

相关推荐
Z3r4y2 天前
【Web】portswigger 服务端原型污染 labs 全解
javascript·web安全·nodejs·原型链污染·wp·portswigger
itas1095 天前
Electron获取nodejs和chrome版本信息
javascript·chrome·electron·nodejs·node
henan程序媛7 天前
jenkins部署Maven和NodeJS项目
运维·jenkins·maven·nodejs
MavenTalk7 天前
2024前端技术发展概况
前端·vue·nodejs·react·angular·大前端
秦伟杰13 天前
mac M1,M2,M3芯片踩坑 nodejs ruby brew
arm·nodejs·ruby·mac·nvm·m2·brew·m1·rvm·m3·苹果芯片
程序者王大川24 天前
【移动端】Flutter与uni-app:全方位对比分析
flutter·uni-app·app·nodejs·全栈·dart·移动端
香吧香1 个月前
安装nvm,并通过nvm安装nodejs
nodejs
营赢盈英2 个月前
Can‘t use openai in command prompt
javascript·prompt·nodejs·reactjs·openai api·command-line
stonefisher2 个月前
推荐Nodejs下高效存储树到数据库工具库-FlexTree
javascript·数据库·nodejs·tree·prisma
loong_XL2 个月前
vue、react前端框架实现TodoList页面案例
前端·vue·nodejs·react