npm run serve运行vue项目时报错:Error: error:0308010C:digital envelope routines::unsupported的解决方法

 更新时间:2024年04月10日 09:47:45   作者:儒雅的烤地瓜  
这篇文章主要介绍了npm run serve运行vue项目时,出现报错:Error: error:0308010C:digital envelope routines::unsupported的解决方法,文中有详细的解决方法,需要的朋友可以参考下

问题描述

用npm run serve运行vue项目时,出现报错:Error: error:0308010C:digital envelope routines::unsupported

报错信息

前端项目启动(npm run dev)和打包时(npm run build:prod)报出如下错误,

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 
....
 
at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

问题原因:

经过一番探索,终于找到了症结所在:主要是nodeJs V17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,nodeJs v17之前版本没影响,但V17和之后版本会出现这个错误。

一句话总结,说白了就是npm升级导致与 openssl 不兼容导致的初始化失败,也就是node.js版本过高的原因造成的运行失败。

解决办法(仅windows):

方式一:通过更改环境变量,进行控制

1、在package.json的scripts中新增SET NODE_OPTIONS=--openssl-legacy-provider

添加前:

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
},

添加后

 "scripts": {
    "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
},

注意:如果团队中node版本不一致,不要将该package.json提交。

2、与第一种方法类似,在编辑器集成终端里,直接设置环境变量,进行控制(只能临时解决)

找到package.json文件右键,在集成终端中打开后,直接输入set NODE_OPTIONS=--openssl-legacy-provider 或 $env:NODE_OPTIONS="--openssl-legacy-provider"回车,然后npm run serve重新运行项目即可。

// windows下
set NODE_OPTIONS=--openssl-legacy-provider
// linux下
export NODE_OPTIONS=--openssl-legacy-provider

方式二:更换node.js版本

以上就是npm run serve运行vue项目时,出现报错:Error: error:0308010C:digital envelope routines::unsupported的解决方法的详细内容,更多关于npm run serve运行vue项目报错的资料请关注脚本之家其它相关文章!

相关文章

  • idea编译器vue缩进报错问题场景分析

    idea编译器vue缩进报错问题场景分析

    idea编译器出现Vue缩进报错,怎么解决呢,很多朋友遇到这个问题都很棘手,不知该如何解决,今天小编给大家通过场景分析介绍解决方案,需要的朋友参考下吧
    2021-07-07
  • Vue3中其他的Composition API详解

    Vue3中其他的Composition API详解

    这篇文章主要介绍了Vue3中其他的Composition API,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • webpack如何打包一个按需引入的vue组件库

    webpack如何打包一个按需引入的vue组件库

    在vue项目开发中,我们会将经常用到的逻辑或模块抽象成组件,对于那些多个项目都有用到的组件,可以考虑封装成组件库,这篇文章主要给大家介绍了关于webpack如何打包一个按需引入的vue组件库的相关资料,需要的朋友可以参考下
    2022-02-02
  • vue2项目解决IE、360浏览器兼容问题的办法

    vue2项目解决IE、360浏览器兼容问题的办法

    虽然已经摈弃ie的使用,但是在现阶段还是在某些场景下需要用到ie,这篇文章主要给大家介绍了关于vue2项目解决IE、360浏览器兼容问题的办法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • Vue中$refs的用法详解

    Vue中$refs的用法详解

    这篇文章主要介绍了Vue中$refs的用法,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2018-06-06
  • vue-treeselect无法点击问题(点击无法出现拉下菜单)

    vue-treeselect无法点击问题(点击无法出现拉下菜单)

    这篇文章主要介绍了vue-treeselect无法点击问题(点击无法出现拉下菜单),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue项目添加动态浏览器头部title的方法

    Vue项目添加动态浏览器头部title的方法

    这篇文章主要介绍了Vue项目添加动态浏览器头部title的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Vue中的计算属性介绍

    Vue中的计算属性介绍

    这篇文章主要介绍了Vue中的计算属性,模板内的表达式,用于简单运算,但是模板中放入太多的逻辑会让模板过重且难以维护,更多具体内容一起进入下面文章学习吧,需要的朋友也可以参考一下
    2021-12-12
  • vue使用openlayers实现移动点动画

    vue使用openlayers实现移动点动画

    这篇文章主要为大家详细介绍了vue使用openlayers实现移动点动画,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • 详解vue-cli快速构建项目以及引入bootstrap、jq

    详解vue-cli快速构建项目以及引入bootstrap、jq

    本篇文章主要介绍了vue-cli快速构建项目以及引入bootstrap、jq,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05

最新评论