为什么npm run serve正常,npm run build就报错:digital envelope routines::unsupported

简介: 通过本文的分析,我们详细介绍了 `npm run serve`正常但 `npm run build`时报错:`digital envelope routines::unsupported`的原因及解决方案。主要从检查Node.js版本、更新依赖、检查依赖库、配置文件及环境变量等方面进行了深入探讨。希望本文能帮助开发者解决这一问题,确保项目顺利构建和部署。

解决npm run build时报错:digital envelope routines::unsupported

一、前言

在使用Vue CLI或其他前端构建工具时,开发者常常遇到 npm run serve运行正常,但 npm run build时报错的问题。具体错误信息为:digital envelope routines::unsupported。本文将深入分析这一问题的原因,并提供详细的解决方案。

二、问题分析

1. 错误信息解析

digital envelope routines::unsupported错误通常与加密算法或SSL/TLS相关,表示在执行加密操作时使用了不受支持的算法。这种错误在Node.js应用中可能由于多种原因引发,常见的包括依赖库不兼容、Node.js版本问题或构建配置错误。

2. 可能原因

  1. Node.js版本不兼容:不同版本的Node.js对加密算法的支持有所不同,某些版本可能缺少特定的算法支持。
  2. 依赖库问题:某些库在不同的运行环境下表现不同,例如开发环境和生产环境。
  3. 环境变量或配置文件:开发环境和生产环境使用的配置文件可能不同,导致某些参数在构建时未正确传递。

三、解决方案

1. 检查Node.js版本

确保Node.js版本兼容。建议使用LTS(长期支持)版本,以获得更好的稳定性和兼容性。

node -v
​

如果Node.js版本过旧,建议升级到最新的LTS版本:

nvm install --lts
nvm use --lts
​

2. 更新依赖

确保项目依赖库是最新版本。使用以下命令更新依赖:

npm install -g npm-check-updates
ncu -u
npm install
​

3. 检查依赖库

排查依赖库中是否存在不兼容的版本。常见的解决方法是删除 node_modules目录和 package-lock.json文件,然后重新安装依赖:

rm -rf node_modules package-lock.json
npm install
​

4. 配置文件

确保开发环境和生产环境使用的配置文件一致。在某些情况下,配置文件中的某些参数在生产环境中未正确传递,可能导致错误。检查 vue.config.js或其他相关配置文件,确保所有环境变量和配置参数正确传递。

module.exports = {
  // Vue CLI 配置示例
  configureWebpack: {
    // 配置选项
  },
  chainWebpack: config => {
    // 链式配置
  }
}
​

5. 设置环境变量

确保正确设置了环境变量,某些加密算法需要特定的环境变量才能正常工作。在构建脚本中添加环境变量设置:

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

6. 检查依赖库的构建工具配置

某些依赖库在构建时可能需要特定的配置,例如Babel、Webpack等。确保这些工具的配置文件中正确配置了相关选项。以下是一个示例:

// babel.config.js
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ]
}

// webpack.config.js
module.exports = {
  // Webpack 配置示例
  module: {
    rules: [
      {
        test: /.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader'
        }
      }
    ]
  }
}
​

四、实际应用示例

示例项目

以下是一个Vue项目的示例配置,展示了如何应用上述解决方案:

// package.json
{
  "name": "my-vue-app",
  "version": "1.0.0",
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "NODE_OPTIONS=--openssl-legacy-provider vue-cli-service build"
  },
  "dependencies": {
    "vue": "^3.0.0"
  },
  "devDependencies": {
    "@vue/cli-service": "^4.5.0",
    "babel-loader": "^8.0.0"
  }
}

// vue.config.js
module.exports = {
  configureWebpack: {
    // 自定义 Webpack 配置
  }
}

// babel.config.js
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ]
}
​

五、总结

通过本文的分析,我们详细介绍了 npm run serve正常但 npm run build时报错:digital envelope routines::unsupported的原因及解决方案。主要从检查Node.js版本、更新依赖、检查依赖库、配置文件及环境变量等方面进行了深入探讨。希望本文能帮助开发者解决这一问题,确保项目顺利构建和部署。

目录
相关文章
|
3月前
执行npm run dev的时候发生了什么
执行npm run dev的时候发生了什么
367 60
|
2月前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
1449 0
|
3月前
|
缓存 JavaScript 前端开发
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
该文章提供了八种解决Vue项目创建时遇到的`command failed: npm install --loglevel error`错误的方法,包括清理缓存、更换npm源、重新安装Node.js等措施。
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
|
6月前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
357 3
|
2月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
80 0
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
该博客文章提供了解决在使用npm版本7.19.1时出现的"no such file or directory"错误的具体方法,建议通过降级npm到6.14.8版本来解决问题,并确认了该方法可以成功安装node_modules。
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
|
4月前
|
缓存 JavaScript 前端开发
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
这篇文章介绍了如何解决npm版本与Node.js版本不兼容的问题,提供了查看当前npm和Node.js版本的步骤,以及如何根据Node.js版本选择合适的npm版本并进行升级的详细指导。
成功解决:npm 版本不支持node.js。【 npm v9.1.2 does not support Node.js v16.6.0.】
|
4月前
|
JavaScript
【Deepin 20系统】Jupyter notebook解决ValueError: Please install Node.js and npm before continuing installa
文章讨论了在Deepin 20系统上安装Jupyter Notebook的debug插件时出现的"ValueError: Please install Node.js and npm before continuing installation"错误,并提供了使用conda安装Node.js的解决方法。
146 1

推荐镜像

更多