如何解决“错误:错误:0308010C:数字信封例程::不支持”Nodejs 18 错误[重复]

问题描述 投票:0回答:6

我的 NuxtJS 应用程序需要帮助。

最近,在我离开应用程序一段时间(2 个月)而没有更新后,应用程序中出现了 ESLint 冲突。因此,在我开始研究它之后,尝试解决 ESLint 问题提出了挑战。然后我必须将项目迁移到较新版本的 Node 和 ESLint。

这样做之后,我解决了冲突问题,我的项目可以安装我的依赖项,但现在服务器无法启动。节点现在抛出一个错误,我什至不知道如何修复。我不知道许多其他人在升级 Node.js 版本后是否面临这个问题,但它抛出了有关不支持的哈希函数的错误。

这是阻止我的服务器启动的终端错误的屏幕截图:

我已经解决了迁移带来的所有 ESLint 和语法错误,所以我不知道还能做什么。

下面是我的 nuxt.config.js 文件的片段:

export default {
  // Global page headers: https://go.nuxtjs.dev/config-head
  head: {
    title: 'heritage-fd',
    meta: [
      { charset: 'utf-8' },
      { name: 'viewport', content: 'width=device-width, initial-scale=1' },
      { hid: 'description', name: 'description', content: '' },
      { name: 'format-detection', content: 'telephone=no' }
    ],
    
    link: [
      { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }
    ],
    
    script: [
      {
        src: '~/static/css/bootstrap.min.js',
      },
    ],
  },

  // Global CSS: https://go.nuxtjs.dev/config-css
  css: [
    {src: '~/static/css/bootstrap.min.css', lang: 'scss'},
    {src: '~/assets/scss/custom.scss', lang: 'scss'},
    {src: "~layouts/global.css"},
    {src: '~/static/css/style.css', lang: 'scss'},
    {src: '~/assets/css/main.css'}
    
  ],

  // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
   plugins: [
    "~/plugins/vee-validate.js",
    { src: '~/plugins/persistedState.client.js', ssr: false }
   ],

  // Auto import components: https://go.nuxtjs.dev/config-components
  components: true,

  // Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modules
  buildModules: [
    // https://go.nuxtjs.dev/eslint
    '@nuxtjs/eslint-module',
    'nuxt-gsap-module',
    '@nuxtjs/fontawesome',
  ],

  // Modules: https://go.nuxtjs.dev/config-modules
  modules: [
    // https://go.nuxtjs.dev/axios
    '@nuxtjs/axios',
    // https://go.nuxtjs.dev/pwa
    '@nuxtjs/pwa',
    '@nuxtjs/auth-next',
    'nuxt-vue-select'
  ],

  // Axios module configuration: https://go.nuxtjs.dev/config-axios
  axios: {
    // Workaround to avoid enforcing hard-coded localhost:3000: https://github.com/nuxt-community/axios-module/issues/308
    baseURL: 'http://localhost:8000/api/',
    
  },

  // PWA module configuration: https://go.nuxtjs.dev/pwa
   pwa: {
    manifest: {
      lang: 'en',
    },
  },

  // Build Configuration: https://go.nuxtjs.dev/config-build
 build: {
    transpile: ["vee-validate/dist/rules"],
    vendor: ["vue-tables-2"]
  },
}
javascript node.js vue.js frontend nuxt.js
6个回答
33
投票

关于这个错误,经过大量研究后,我终于发现整个错误是由于nodejs升级到v18.12.1版本引起的,所以我建议每个刚刚升级tio node v18.12.1的遇到同样问题的人降级回版本Node v16.0.0,如果您需要这方面的帮助,您可以使用

nvm

下面概述了一些步骤,以及一些资源链接

`

  1. 下载并安装nvm 按照此处的说明进行操作
  1. 安装Nodejs v16.0.0

    nvm install 16.0.0

  2. 卸载nodejs v18.12.1

    nvm uninstall 18.12.1
    或您自己的节点版本

我确实这对某人有帮助,就像对我一样,我知道框架错误带来的痛苦。如果您需要进一步帮助,请发表评论。 谢谢你。


22
投票

就我而言,当我运行时,这发生在我的 Github Actions 构建管道中

npm run build

我能够通过提供以下环境参数来修复它:

export NODE_OPTIONS=--openssl-legacy-provider

根据我读到的内容,这个节点选项也可以在package.json中设置。

这似乎比将nodejs降级到v16要容易一些。


10
投票

检查了这里的解决方案,我决定在项目中安装[email protected]作为开发依赖。

npm install [email protected] --save-dev

然后在脚本中包含命令“dev”:“npm runserve”。

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

这将使得当您运行命令“npm run dev”时

npm run dev

它将使用项目依赖项的节点运行脚本。


5
投票

我花了很多时间来解决这个问题。如果您使用 Fedora 并收到此错误

尝试使用以下标志运行您的项目:

NODE_OPTIONS=--openssl-legacy-provider 
例如:
"dev": "NODE_OPTIONS=--openssl-legacy-provider next -p 4000"

如果对你有帮助,那么你可以将其设置为 Node 环境

  • 在控制台中检查您的选项
    echo $NODE_OPTIONS
  • 如果选项为空,请设置它
    export NODE_OPTIONS=--openssl-legacy-provider

我使用16.17.1版本的NodeJs,设置NODE_OPTIONS var对我有帮助。

如果这没有帮助,请尝试最后一步,尝试取消注释

/etc/ssl/openssl.cnf
文件中的以下行。


0
投票

您可以使用Romanric AKAM给出的答案,但是如果您有多个项目需要不同的节点版本(在我的情况下,我有两个项目依赖于不同的版本)

因此,在这种情况下,请转到您遇到此问题的项目目录并运行

nvm install 16.0.0

注意:请先安装nvm


-1
投票

我注意到有一个更新的版本:Node-18.13.0。所以我尝试更新到这个最新版本而不是回滚到以前的版本,但它不起作用。

然后,我在这里查看了其他版本:

https://nodejs.org/dist/

安装 Node-v15.6.0 版本解决了我的这个问题。因此,目前回滚 Node 可能是我们最好的选择。

© www.soinside.com 2019 - 2024. All rights reserved.