当前位置: 首页 > news >正文

npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported

 vue 启动项目时,npm run serve 报下面的错:

error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:133:10)

 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'
}

D:\OpenSource\bpm-platform-ui-250115>npm run dev

> work-flowable@0.8.3 dev
> 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:79:19)
    at Object.createHash (node:crypto:139:10)
    at D:\OpenSource\bpm-platform-ui-250115\node_modules\compression-webpack-plugin\dist\index.js:243:42
    at CompressionPlugin.compress (D:\OpenSource\bpm-platform-ui-250115\node_modules\compression-webpack-plugin\dist\index.js:284:9)
    at D:\OpenSource\bpm-platform-ui-250115\node_modules\compression-webpack-plugin\dist\index.js:305:12
    at _next1 (eval at create (D:\OpenSource\bpm-platform-ui-250115\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:14:17)
    at eval (eval at create (D:\OpenSource\bpm-platform-ui-250115\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:33:1)
    at D:\OpenSource\bpm-platform-ui-250115\node_modules\copy-webpack-plugin\dist\index.js:91:9
 

解决方法: 

在窗口运行如下代码(修改环境变量),回车后重启即可~~~~

$env:NODE_OPTIONS="--openssl-legacy-provider"

前端项目使用( npm run dev ) 运行vue项目时,出现错误:Error: error:0308010C:digital envelope routines::unsupported

经过探索,发现问题所在,主要是nodeJs V17版本发布了OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,导致了nodeJs V17之前版本不受影刺而nodeJs V17和之后的版本会出现这个错误。

也就是npm升级导致了与OpenSSL不兼容导致的初始化失败,也就是nodeJs版本过高的原因导致了运行失败。

系统安装的nodeJs版本正好是V18,因此出现了这个错误系统。
解决方案

1、更改系统环境变量来解决

2、更改项目环境变量来解决

3、更换NodeJs版本来解决
具体演示

1、更改系统环境变量

①Windows平台

我的电脑上右键 → 属性 → 高级系统设置 → 添加系统变量:NODE_OPTIONS = --openssl-legacy-provider

 

 

②Linux / Mac 平台

export NODE_OPTIONS=--openssl-legacy-provider

完成后,建议重新打开一个命令行窗口启动服务。

2、更改项目环境变量来解决

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

添加前代码:

      "scripts": {
        "dev": "vue-cli-service serve",
        "build:prod": "vue-cli-service build",
        "build:stage": "vue-cli-service build --mode staging",
        "preview": "node build/index.js --preview",
        "lint": "eslint --ext .js,.vue src",
        "test:unit": "jest --clearCache && vue-cli-service test:unit",
        "test:ci": "npm run lint && npm run test:unit",
        "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
      },

添加后代码:

      "scripts": {
        "dev": "set NODE_OPTIONS=--openssl-legacy-provider & vue-cli-service serve",
        "build:prod": "vue-cli-service build",
        "build:stage": "vue-cli-service build --mode staging",
        "preview": "node build/index.js --preview",
        "lint": "eslint --ext .js,.vue src",
        "test:unit": "jest --clearCache && vue-cli-service test:unit",
        "test:ci": "npm run lint && npm run test:unit",
        "svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml"
      },

这里需要注意的是,要是团队中的nodejs版本不一致,不要提交该 package.json 文件。

②与①类似,在编辑器集成终端里,直接设置环境变量进行控制(这种方式只能临时解决)

具体如下:

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

    // windows系统
    set NODE_OPTIONS=--openssl-legacy-provider
     
    // linux系统
    export NODE_OPTIONS=--openssl-legacy-provider

3、更换NodeJs版本来解决

卸载本地NodeJs环境,暗转NodeJsV17之前的版本。 

http://www.lryc.cn/news/529579.html

相关文章:

  • 11.QT控件:输入类控件
  • deepseek核心技术:MLA架构-多头潜在注意力
  • 讯飞星火大模型API使用Python调用
  • C#面试常考随笔7:什么是匿名⽅法?还有Lambda表达式?
  • Elasticsearch:如何搜索含有复合词的语言
  • 【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化
  • idea maven本地有jar包,但还要从远程下载
  • C++编程语言:抽象机制:模板(Bjarne Stroustrup)
  • 深入解析 Linux 内核中的页面错误处理机制
  • 【AIGC专栏】AI在自然语言中的应用场景
  • Ubuntu 20.04安装Protocol Buffers 2.5.0
  • 解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路
  • 计算机组成原理——数据运算与运算器(二)
  • SpringBoot+Vue的理解(含axios/ajax)-前后端交互前端篇
  • 【AI】DeepSeek 概念/影响/使用/部署
  • javascript-es6 (二)
  • 供应链系统设计-供应链中台系统设计(十四)- 清结算中心设计篇(三)
  • 【自学笔记】MySQL的重点知识点-持续更新
  • X86路由搭配rtl8367s交换机
  • Linux环境基础开发工具的使用(apt, vim, gcc, g++, gbd, make/Makefile)
  • 多模态论文笔记——ViViT
  • 搜索与图论复习1
  • 【数据结构】初识链表
  • 第11章:根据 ShuffleNet V2 迁移学习医学图像分类任务:甲状腺结节检测
  • deepseek+vscode自动化测试脚本生成
  • 深入理解Flexbox:弹性盒子布局详解
  • android Camera 的进化
  • 仿真设计|基于51单片机的氨气及温湿度检测报警
  • 关于EDGE IMPULSE的使用与适配,包含如何学习部署在对应的板子
  • 【Python蓝桥杯备赛宝典】