提问人:a1cd 提问时间:10/24/2021 最后编辑:Ivan Akulova1cd 更新时间:10/17/2023 访问量:2320447
错误消息“错误:0308010C:数字信封例程::不支持”
Error message "error:0308010C:digital envelope routines::unsupported"
问:
我创建了默认的 IntelliJ IDEA React 项目并得到了这个:
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:67:19)
at Object.createHash (node:crypto:130:10)
at module.exports (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/util/createHash.js:135:53)
at NormalModule._initBuildHash (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:417:16)
at handleParseError (/Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:471:10)
at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:503:5
at /Users/user/Programming Documents/WebServer/untitled/node_modules/webpack/lib/NormalModule.js:358:12
at /Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:373:3
at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
at iterateNormalLoaders (/Users/user/Programming Documents/WebServer/untitled/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
/Users/user/Programming Documents/WebServer/untitled/node_modules/react-scripts/scripts/start.js:19
throw err;
^
这似乎是最近的一个问题 - webpack 在 4 天前遇到了这个问题,并且仍在努力。
答:
无法构造变压器:错误:错误:0308010C:数字信封例程::不支持
解决上述错误的最简单和最简单的解决方案是将 Node.js 降级到 v14.18.1。然后只需删除文件夹并尝试重建您的项目,您的错误必须得到解决。node_modules
评论
node_modules
您可以尝试以下方法之一:
1. 降级到 Node.js v16。
您可以从 Node.js 网站重新安装当前的 LTS 版本。
也可以使用
nvm
。对于 Windows,请使用nvm-windows
。
2. 启用旧版 OpenSSL 提供程序。
在类 Unix(Linux、macOS、Git bash 等)上:
export NODE_OPTIONS=--openssl-legacy-provider
在 Windows 命令提示符下:
set NODE_OPTIONS=--openssl-legacy-provider
在 PowerShell 上:
$env:NODE_OPTIONS = "--openssl-legacy-provider"
评论
/usr/local/Cellar/node/17.0.1/bin/node: --openssl-legacy-provider is not allowed in NODE_OPTIONS
set NODE_OPTIONS=--openssl-legacy-provider
--openssl-legacy-provider
package.json
NODE_OPTIONS
在package.json中:更改此行
"start": "react-scripts start"
自
"start": "react-scripts --openssl-legacy-provider start"
评论
--openssl-legacy-provider
npm audit fix --force
如果我们使用Node.js的当前LTS版本,则不会出现此错误。将 Node.js 版本降级到当前 LTS 版本 (16.13.0)。
可以通过多种方式安装所需的版本。其中之一是使用 nvm(Node.js 版本管理器)。
步骤 1:安装 nvm(如果未安装,请按照使用节点版本管理器 (nvm) 在本地安装 Node.js)
第 2 步:(或 lts)
nvm install 16.13.0
评论
我在Docker构建中遇到了这个问题,我在Docker文件中添加了这一行:
RUN export NODE_OPTIONS=--openssl-legacy-provider && yarn build && yarn install --production --ignore-scripts --prefer-offline
对于本地开发,请在文件package.json中添加交换机。
评论
--openssl-legacy-provider
yarn
这是 Node.js 版本。
我在 Node.js 17 上遇到此错误,但是当我使用 将 Node.js 版本切换到旧版本 (16) 时,这很好。nvm
评论
choco uninstall nodejs
choco install nodejs-lts
尝试:
npm create react-app --template typescript foo --use-npm
评论
如果您遇到此错误并且不想更改主配置,一个简单的解决方法是使用以下方法。不过,我不确定它是否被推荐为一种好的做法。
随意更正它。
最初,假设这是我文件的脚本部分:package.json
...
"version": "1.0.0",
"scripts": {
...
"build": "npm run build:test-app:testing",
"build:test-app:testing": "ng build test-app --deploy-url https://test-app.com/ --configuration=test-config",
...
},
"private": true,
...
为了使用它,您可以执行以下操作:export NODE_OPTIONS=--openssl-legacy-provider
"version": "1.0.0",
"scripts": {
....
"build": "NODE_OPTIONS=--openssl-legacy-provider npm run build:test-app:testing”,
"build:test-app:testing": "NODE_OPTIONS=--openssl-legacy-provider ng build test-app --deploy-url https://test-app.com/ --configuration=test-config"
...
},
"private": true,
记下生成脚本。我添加了一个选项:NODE_OPTIONS=--openssl-legacy-provider
这有助于解决 Node.js 版本 17 中的此错误。
对于那些可以灵活更改构建系统的 Node.js 版本的用户,只需切换到低于 17 的版本,例如版本 16。
对于 Docker,最初使用它的用例,它总是拉取最新版本:
...
FROM node:alpine
...
您可以切换到类似内容的内容:
...
FROM node:16-alpine3.12
...
我在GitHub上找到了以下命令:
对于 Windows,请在 cmd 中使用以下命令:
set NODE_OPTIONS=--openssl-legacy-provider
对于 Unix,请使用:
export NODE_OPTIONS=--openssl-legacy-provider
评论
我在 Node.js 17.0.1 中遇到了同样的问题。我按照以下步骤解决了它:
打开“控制面板”→“程序和功能”→ Node.js然后卸载 Node.js方法是右键单击
转到网站 https://nodejs.org/en/ 并下载版本并安装。
评论
这个解决方案对我有用。
此错误出现在 Node.js 版本 17+ 中,因此请尝试降级 Node.js 版本。
- 从计算机上卸载 Node.js。
- 下载 Node.js版本 16 并从 https://nodejs.org/download/release/v16.13.0/ 重新安装
就这样。
评论
nvm install 16
下面的临时解决方案。实际的解决方案是升级到 Webpack 5。
更新时间:2022 年 12 月
这对我有用(降级到 Node.js 16):
nvm install 16 --lts
nvm use 16
使用 Node.js 版本管理器(适用于 Windows)。
评论
nvm install lts
nvm install --lts
nvm use
nvm install 16.15.0
nvm use 16.15.0
在 Dockerfile 上,您应该添加:
ENV NODE_OPTIONS=--openssl-legacy-provider
评论
并为大多数用户下载推荐的版本。
然后从您的 PC 上卸载 Node.js 并安装推荐的版本。
据我了解,这是开发团队的问题。他们会尽快修复它,但同时使用推荐的版本,一切都会好起来的。
2023 年 4 月更新:
这个答案于 2021 年 12 月首次发布,已经一年多了,所以这个答案可能不再那么可靠或相关了。查看有关此问题背后的更多原因和最新解决方案的其他答案。
一些热门答案不起作用。
export NODE_OPTIONS=--openssl-legacy-provider
一些热门答案不适用,修改文件:package.json
"start": "react-scripts --openssl-legacy-provider start"
这是由最新的兼容问题引起的,请参阅 GitHub 上的此问题和此问题。node.js V17
OpenSSL
最简单的方法是从 降级到 .请参阅此帖子 如何降级 .node.js V17
node.js V16
node.js
评论
V.16
nvm install v16 && nvm alias default v16 && nvm use v16
package.json
我今天遇到了这个问题,并通过使用“nvm”切换 Node.js 版本解决了它。
我一直在使用 Node.js、Next.js 1 和 React 2 进行一些个人项目。经常发生在我身上的情况是,我不记得我为哪个项目使用了哪个版本的 Node.js。
因此,通常,我会尝试将 Node.js 16 用于当前使用 Node.js 14 的项目。
我还没有找到更好的方法来记住每个项目的 Node.js 版本,所以我通常只保存我需要运行的所有命令,以便在自述文件中启动应用程序。LDO的
这在我的应用博览会中对我有用(从 Node.js 17 降级到 Node.js 12 或 14)。
如果您安装了 nvm,则可以更改 node 的版本:
首先检查 nvm 中 Node.js 的版本:
nvm list
其次,安装版本 12 或 14:
nvm install v12.22.8
评论
检查
node -v
v17.4.0
然后回滚到节点 --LTS(节点 v16.13.2 (npm v8.1.2)),以便使用 nvm。
nvm install 16
然后检查并确认它是版本 16。node -v
评论
lts
在 Angular.io 项目中,接受(不受支持)的 Nodes.js 版本为 v16.x.x。
在 Nodes v17.x 版本中,会出现此问题中描述的相同错误。
溶液:
卸载节点并重新安装版本 v16.x(适用于 Windows)。
评论
我使用 LTS 版本修复了:
echo "lts" > .nvmrc
nvm install
React Native 有一个错误的脚本来查找 Node.js 可执行文件的路径。
这会通过节点版本管理器将版本设置为 Node.js 的最新稳定版本。
我发现即使 Node.js 在我的路径中,如果我有一个 ~/.nvm 目录,它也会尝试在 nvm 中找到用途并失败。这会将当前节点设置为链接到 ~/.nvm 中的节点,因此 React Native 可以找到该节点。
这是最简单的答案,并且有效。
如果您正在使用,您现在可以简单地升级到 5.0.0 版(或更高版本),这似乎已经解决了这个问题(它包括更新版本的 webpack)。react-scripts
例:npm i react-scripts@latest
评论
npm i react-scripts@latest
您需要将 react-scripts 更新到最新版本
npm update react-scripts --save
评论
如果您在使用 GatsbyJs 时遇到此错误,您需要做的就是将节点版本降级为长期支持。没有别的救恩
评论
这可能不是每个人的答案。但是对于在 docker 中运行节点 17 及更高版本的任何人来说,正如每个人都说的那样降级会有所帮助。不需要 open-legacy-sslprovider。Dockerfile 中的简单切换
From node
使用
From node:16.*
修复了 Docker 中的此问题。
评论
运行审核为我解决了问题
npm audit fix --force
评论
对于 Angular 应用程序:
您还可以在 package.json 中编辑脚本。而不是npm start
"start": "ng serve -o"
自
"start": "set NODE_OPTIONS=--openssl-legacy-provider && ng serve -o"
当您在终端/命令行中运行时,它将首先设置 以避免问题。npm run start
NODE_OPTIONS
评论
运行开发服务器时,节点版本 v18.0.0 和 nuxt 框架版本 2.15 出现相同的错误,将通过以下方式修复:
"scripts": {
"dev": "NODE_OPTIONS=--openssl-legacy-provider nuxt"
}
评论
我在使用 Vue.js 时遇到了这个问题。
使用的一个缺点是旧的 Node.js 版本不支持它。提供此标志时,较旧的 Node.js 版本根本无法运行。
但我仍然希望与 Node.js v16 及更早版本兼容。-openssl-legacy-provider
Vue.js 使用 MD4 算法来生成哈希值(嗯,实际上它是引擎盖下的 Webpack)。出于此类目的,MD4 可以很容易地被 MD5 取代。在大多数地方,使用的算法类型都是硬编码的,因此无法配置其他算法。
所以我想出了另一种解决方法。一个函数,用于截获来自模块的原始调用并将其替换为修改后的版本。这是我的vue.config.js文件的开头:createHash()
crypto
const crypto = require('crypto');
/**
* The MD4 algorithm is not available anymore in Node.js 17+ (because of library SSL 3).
* In that case, silently replace MD4 by the MD5 algorithm.
*/
try {
crypto.createHash('md4');
} catch (e) {
console.warn('Crypto "MD4" is not supported anymore by this Node.js version');
const origCreateHash = crypto.createHash;
crypto.createHash = (alg, opts) => {
return origCreateHash(alg === 'md4' ? 'md5' : alg, opts);
};
}
评论
node
crypto
require("crypto")
我在使用 Node.js v18.4.0 构建 hoppscotch 时遇到了同样的错误,并救了我!set NODE_OPTIONS=--openssl-legacy-provider
原木
D:\code\rust\hoppscotch-app\hoppscotch>pnpm install && pnpm run generate
Scope: all 5 workspace projects
Lockfile is up-to-date, resolution step is skipped
Already up-to-date
packages/codemirror-lang-graphql prepare$ rollup -c
│ Browserslist: caniuse-lite is outdated. Please run:
│ npx browserslist@latest --update-db
│ Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
│
│ src/index.js → dist/index.cjs, ./dist...
│ created dist/index.cjs, ./dist in 2.8s
└─ Done in 4.8s
packages/hoppscotch-data prepare$ tsup src --dts
[20 lines collapsed]
│ CJS dist\chunk-LZ75CAKS.js 13.00 B
│ DTS Build start
│ DTS ⚡️ Build success in 2261ms
│ DTS dist\index.d.ts 714.00 B
│ DTS dist\rest\index.d.ts 2.18 KB
│ DTS dist\graphql\index.d.ts 589.00 B
│ DTS dist\collection\index.d.ts 1.30 KB
│ DTS dist\rest\content-types.d.ts 473.00 B
│ DTS dist\rest\HoppRESTAuth.d.ts 882.00 B
│ DTS dist\type-utils.d.d.ts 1.00 B
└─ Done in 3.8s
packages/hoppscotch-js-sandbox postinstall$ pnpm run build
│ > @hoppscotch/[email protected] build D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-js-sandbox
│ > npx tsc
└─ Done in 8.7s
. prepare$ husky install
│ husky - Git hooks installed
└─ Done in 300ms
packages/hoppscotch-app postinstall$ pnpm run gql-codegen
[12 lines collapsed]
│ [14:58:01] Load GraphQL documents [started]
│ [14:58:01] Load GraphQL documents [completed]
│ [14:58:01] Generate [started]
│ [14:58:01] Generate [completed]
│ [14:58:01] Generate helpers/backend/backend-schema.json [completed]
│ [14:58:02] Load GraphQL documents [completed]
│ [14:58:02] Generate [started]
│ [14:58:02] Generate [completed]
│ [14:58:02] Generate helpers/backend/graphql.ts [completed]
│ [14:58:02] Generate outputs [completed]
└─ Done in 4s
> [email protected] generate D:\code\rust\hoppscotch-app\hoppscotch
> pnpm -r do-build-prod
Scope: 4 of 5 workspace projects
packages/hoppscotch-js-sandbox do-build-prod$ pnpm run build
│ > @hoppscotch/[email protected] build D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-js-sandbox
│ > npx tsc
└─ Done in 7.5s
packages/hoppscotch-app do-build-prod$ pnpm run generate
│ > [email protected] generate D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-app
│ > nuxt generate --modern
│ i Sentry reporting is disabled (no DSN has been provided)
│ i Production build
│ i Bundling only for client side
│ i Target: static
│ i Using components loader to optimize imports
│ i Discovered Components: node_modules/.cache/nuxt/components/readme.md
│ √ Builder initialized
│ √ Nuxt files generated
│ i Compiling Client
│ ERROR Error: error:0308010C:digital envelope routines::unsupported
│ at new Hash (node:internal/crypto/hash:67:19)
│ at Object.createHash (node:crypto:133:10)
│ at module.exports (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib
│ at NormalModule._initBuildHash (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_module
│ at handleParseError (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\l
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at runSyncOrAsync (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at Array.<anonymous> (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loa
│ at Storage.finished (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\e
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\enhanced-resolve\li
│ WARN Browserslist: caniuse-lite is outdated. Please run:
│ npx browserslist@latest --update-db
│ Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
│ ERROR error:0308010C:digital envelope routines::unsupported
│ at new Hash (node:internal/crypto/hash:67:19)
│ at Object.createHash (node:crypto:133:10)
│ at module.exports (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\u
│ at NormalModule._initBuildHash (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at handleParseError (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:5
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:3
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Loader
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\lo
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\lo
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Loader
│ at context.callback (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]_@[email protected]\node_modules\babel
│ D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunne
│ throw e;
│ ^
│ Error: error:0308010C:digital envelope routines::unsupported
│ at new Hash (node:internal/crypto/hash:67:19)
│ at Object.createHash (node:crypto:133:10)
│ at module.exports (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib
│ at NormalModule._initBuildHash (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_module
│ at handleParseError (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\l
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at context.callback (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\load
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected][email protected]\node_modules\cache-lo
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\graceful-fs\graceful-fs.
│ at FSReqCallback.oncomplete (node:fs:201:23) {
│ opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
│ library: 'digital envelope routines',
│ reason: 'unsupported',
│ code: 'ERR_OSSL_EVP_UNSUPPORTED'
│ }
│ Node.js v18.4.0
│ ELIFECYCLE Command failed with exit code 1.
└─ Failed in 8.3s
D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-app:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL [email protected] do-build-prod: `pnpm run generate`
Exit status 1
ELIFECYCLE Command failed with exit code 1.
D:\code\rust\hoppscotch-app\hoppscotch>npx browserslist@latest --update-db
Need to install the following packages:
[email protected]
Ok to proceed? (y) y
Latest version: 1.0.30001357
Updating caniuse-lite version
$ pnpm up caniuse-lite
caniuse-lite has been successfully updated
No target browser changes
D:\code\rust\hoppscotch-app\hoppscotch>pnpm install && pnpm run generate
Scope: all 5 workspace projects
Lockfile is up-to-date, resolution step is skipped
Already up-to-date
packages/codemirror-lang-graphql prepare$ rollup -c
│ Browserslist: caniuse-lite is outdated. Please run:
│ npx browserslist@latest --update-db
│ Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
│
│ src/index.js → dist/index.cjs, ./dist...
│ created dist/index.cjs, ./dist in 2.8s
└─ Done in 4.8s
packages/hoppscotch-data prepare$ tsup src --dts
[20 lines collapsed]
│ CJS dist\chunk-JUWXSDKJ.js 1010.00 B
│ DTS Build start
│ DTS ⚡️ Build success in 2250ms
│ DTS dist\index.d.ts 714.00 B
│ DTS dist\rest\index.d.ts 2.18 KB
│ DTS dist\graphql\index.d.ts 589.00 B
│ DTS dist\collection\index.d.ts 1.30 KB
│ DTS dist\rest\content-types.d.ts 473.00 B
│ DTS dist\rest\HoppRESTAuth.d.ts 882.00 B
│ DTS dist\type-utils.d.d.ts 1.00 B
└─ Done in 3.7s
packages/hoppscotch-js-sandbox postinstall$ pnpm run build
│ > @hoppscotch/[email protected] build D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-js-sandbox
│ > npx tsc
└─ Done in 8.5s
. prepare$ husky install
│ husky - Git hooks installed
└─ Done in 335ms
packages/hoppscotch-app postinstall$ pnpm run gql-codegen
[12 lines collapsed]
│ [15:02:37] Load GraphQL documents [started]
│ [15:02:37] Load GraphQL documents [completed]
│ [15:02:37] Generate [started]
│ [15:02:37] Generate [completed]
│ [15:02:37] Generate helpers/backend/backend-schema.json [completed]
│ [15:02:38] Load GraphQL documents [completed]
│ [15:02:38] Generate [started]
│ [15:02:38] Generate [completed]
│ [15:02:38] Generate helpers/backend/graphql.ts [completed]
│ [15:02:38] Generate outputs [completed]
└─ Done in 3.8s
> [email protected] generate D:\code\rust\hoppscotch-app\hoppscotch
> pnpm -r do-build-prod
Scope: 4 of 5 workspace projects
packages/hoppscotch-js-sandbox do-build-prod$ pnpm run build
│ > @hoppscotch/[email protected] build D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-js-sandbox
│ > npx tsc
└─ Done in 6.9s
packages/hoppscotch-app do-build-prod$ pnpm run generate
│ > [email protected] generate D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-app
│ > nuxt generate --modern
│ i Sentry reporting is disabled (no DSN has been provided)
│ i Production build
│ i Bundling only for client side
│ i Target: static
│ i Using components loader to optimize imports
│ i Discovered Components: node_modules/.cache/nuxt/components/readme.md
│ √ Builder initialized
│ √ Nuxt files generated
│ i Compiling Client
│ ERROR Error: error:0308010C:digital envelope routines::unsupported
│ at new Hash (node:internal/crypto/hash:67:19)
│ at Object.createHash (node:crypto:133:10)
│ at module.exports (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib
│ at NormalModule._initBuildHash (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_module
│ at handleParseError (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\l
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at runSyncOrAsync (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at Array.<anonymous> (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loa
│ at Storage.finished (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\e
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\enhanced-resolve\li
│ WARN Browserslist: caniuse-lite is outdated. Please run:
│ npx browserslist@latest --update-db
│ Why you should do it regularly: https://github.com/browserslist/browserslist#browsers-data-updating
│ ERROR error:0308010C:digital envelope routines::unsupported
│ at new Hash (node:internal/crypto/hash:67:19)
│ at Object.createHash (node:crypto:133:10)
│ at module.exports (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\u
│ at NormalModule._initBuildHash (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at handleParseError (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:5
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js:3
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Loader
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\lo
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\lo
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Loader
│ at context.callback (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]_@[email protected]\node_modules\babel
│ D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\LoaderRunne
│ throw e;
│ ^
│ Error: error:0308010C:digital envelope routines::unsupported
│ at new Hash (node:internal/crypto/hash:67:19)
│ at Object.createHash (node:crypto:133:10)
│ at module.exports (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib
│ at NormalModule._initBuildHash (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_module
│ at handleParseError (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\l
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\webpack\lib\NormalModule.js
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at iterateNormalLoaders (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\loader-runner\lib\Load
│ at context.callback (D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\load
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected][email protected]\node_modules\cache-lo
│ at D:\code\rust\hoppscotch-app\hoppscotch\node_modules\.pnpm\[email protected]\node_modules\graceful-fs\graceful-fs.
│ at FSReqCallback.oncomplete (node:fs:201:23) {
│ opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
│ library: 'digital envelope routines',
│ reason: 'unsupported',
│ code: 'ERR_OSSL_EVP_UNSUPPORTED'
│ }
│ Node.js v18.4.0
│ ELIFECYCLE Command failed with exit code 1.
└─ Failed in 8.2s
D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-app:
ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL [email protected] do-build-prod: `pnpm run generate`
Exit status 1
ELIFECYCLE Command failed with exit code 1.
D:\code\rust\hoppscotch-app\hoppscotch>echo %NODE_OPTIONS%
%NODE_OPTIONS%
D:\code\rust\hoppscotch-app\hoppscotch>set NODE_OPTIONS=--openssl-legacy-provider
D:\code\rust\hoppscotch-app\hoppscotch>echo %NODE_OPTIONS%
--openssl-legacy-provider
D:\code\rust\hoppscotch-app\hoppscotch>pnpm run generate
> [email protected] generate D:\code\rust\hoppscotch-app\hoppscotch
> pnpm -r do-build-prod
Scope: 4 of 5 workspace projects
packages/hoppscotch-js-sandbox do-build-prod$ pnpm run build
│ > @hoppscotch/[email protected] build D:\code\rust\hoppscotch-app\hoppscotch\packages\hoppscotch-js-sandbox
│ > npx tsc
└─ Done in 7.1s
packages/hoppscotch-app do-build-prod$ pnpm run generate
[732 lines collapsed]
│ √ Generated route "/vi/enter"
│ √ Generated route "/vi/graphql"
│ √ Generated route "/vi/join-team"
│ √ Generated route "/vi/profile"
│ √ Generated route "/vi/realtime"
│ √ Generated route "/vi/settings"
│ √ Generated route "/"
│ √ Client-side fallback created: 404.html
│ i Generating sitemaps
│ √ Generated /sitemap.xml
└─ Done in 6m 37.1s
D:\code\rust\hoppscotch-app\hoppscotch>
危险
这个问题有 30 多个答案,大多数建议将 Node.js 降级到 v17 之前的版本或使用旧版 SSL 提供程序。这两种解决方案都是黑客攻击,使您的构建面临安全威胁。
错误原因
在 Node.js v17 中,Node.js 开发人员关闭了 SSL 提供程序中的安全漏洞。此修复是一项重大更改,与 NPM 中 SSL 包中的类似重大更改相对应。当您尝试在 Node.js v17 或更高版本中使用 SSL 而不升级 中的这些 SSL 包时,您将看到此错误。package.json
正确(安全)解决方案(针对 npm 用户)
使用最新版本的 Node.js,并使用具有安全修补程序的最新包。
对于许多人来说,以下命令将解决该问题:
npm audit fix --force
但是,请注意,对于复杂的构建,上述命令将引入可能破坏构建的破坏安全修复程序。
Yarn 用户须知
Yarn 用户可以使用 yarn-audit-fix,它可以在不安装依赖项的情况下通过
npm_config_yes=true npx yarn-audit-fix
或 Windows PowerShell:
$env:npm_config_yes = 1; npx yarn-audit-fix
一个不那么严厉(也是正确的)Webpack 解决方案
在 Webpack 配置中,设置以下任一选项: (请参阅 ouput.hashFunction 文档)
A. (Webpack v5) 设置 .
B. (Webpack v4) 这将取决于 nodejs 在您的系统上支持的哈希算法。您可以尝试的一些常见选项是 或 。output.hashFunction = 'xxhash64'
output.hashFunction = 'sha512'
output.hashFunction = 'sha256'
在 Greg 的回答中查看更多信息。
评论
npm audit fix --force
是唯一对我有用的东西,但我还必须先升级我项目中的所有包依赖项:nodejs.dev/en/learn/......
audit fix --force
--force
npm update
npm audit fix --force
在 PowerShell 中:
$env:NODE_OPTIONS = "--openssl-legacy-provider"
它与Node.js v18.7.0一起使用。
评论
发布了很多解决方法(主要是降级 Node.js、OpenSSL 或允许不安全的散列),但潜在的问题是 Webpack 的默认值为 ,这在最新版本的 OpenSSL 中触发了此错误。output.hashFunction
md4
来自 Webpack 的 output.hashFunction 文档:
从 Webpack v5.54.0+ 开始,支持作为更快的算法,启用后将默认使用。
hashFunction
xxhash64
experiments.futureDefaults
解决方案是:
- 设置
output.hashFunction = 'xxhash64'
- 设置
experiments.futureDefaults = true
在您的 Webpack 配置中。
如果您使用的是旧版本的 Webpack(v5.54.0 之前),请点击上面的 output.hashFunction 链接查看您可以使用的其他哈希算法。
评论
file-loader
css-loader
md4
'[name].[sha512:hash:6].[ext]'
output.hashFunction
xxhash64
当项目上的包未更新且您使用的 React 版本不是最新版本时,这是一个常见错误。
要解决此问题,您需要以这种方式更改 package.json 文件:
更改此项 👇
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}
👇 对此
"scripts": {
"start": "react-scripts --openssl-legacy-provider start",
"build": "react-scripts --openssl-legacy-provider build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}
评论
当我使用 nvm 更改 Node.js 版本时,我遇到了同样的问题。如果您在项目中使用 Sass,请尝试:
sudo npm rebuild node-sass
此答案是直接的 OpenSSL 系统级解决方法,无需触及以前有效的构建配置。
在理想情况下,你有时间升级和迁移不安全的构建依赖项,并确保你没有破坏应用程序中的其他东西(或者批发只是避免 webpack,或者在我的情况下从 vue-cli 迁移到使用 esbuild 的 vite)。
相反,您“应该”(a)告诉webpack使用更新的哈希函数,或者(b)使用。npm audit
系统级 OpenSSL 解决方法
最快的解决方法是通过在系统范围的 OpenSSL 配置中启用“传统”加密提供程序来临时重新启用 MD4。
这是非常不安全和严厉的。之后,您应该禁用传统的加密方法。
(不幸的是,以下内容仅经过测试,可在 Linux 上运行)。
备份现有的 OpenSSL 配置:
sudo cp /etc/ssl/openssl.cnf /etc/ssl/openssl.cnf.BAK
附加(或取消注释)以下配置以启用旧版“提供程序”(OpenSSL 称其为提供程序)。你可能想要或类似。
sudo vim /etc/ssl/openssl.cnf
[provider_sect] default = default_sect legacy = legacy_sect [default_sect] activate = 1 [legacy_sect] activate = 1
像以前一样重新运行节点脚本。
之后禁用旧提供程序。
sudo mv -f /etc/ssl/openssl.cnf.BAK /etc/ssl/openssl.cnf
这个解决方案来自类似问题的答案。
根本原因是什么?
Node 使用 OpenSSL 在 *nix 系统上进行哈希函数和加密。默认情况下,最新版本的 OpenSSL 会禁用 MD4,这将破坏任何以前使用 MD4 的程序。考虑到这一点,任何认为使用 MD4 进行文件哈希处理是“好主意”的 npm 包现在都坏了——尽管 MD4 自 1996 年以来一直被 RSA Labs 认为是坏的!MD4 也在 2011 年被 RFC 6150 “正式”降级为过时。
这是一个建议并为我工作的快速修复方法。cd 到您创建的新 App 目录中;您可能需要 ,然后运行以下命令:sudo this install
跑:
npm install -g npm-check-updates
然后:
ncu -u
然后:
npm install
然后:
npm start
评论
我在 Windows 上通过卸载 OpenSSL 1.1.1、安装 OpenSSL 3(如果您使用 Chocolatey: )并将 Angular 更新到最新版本(当前为 14)解决了这个问题,这解决了上述 Webpack 配置问题。choco install openssl.light
当然,正如大多数答案所暗示的那样,降级 Node.js 不是一种正确的方法。
评论
我有同样的错误。
我的情况:
我安装了一个新的 React TypeScript 应用程序,添加了一些 SCSS 内容和一些组件。
在本地,我的构建正在工作,但是当我尝试发布时,它失败了并出现错误:
错误:错误:0308010C:数字信封例程::不支持
我通过将我的 React 脚本库更新到 5.0.1 解决了这个问题:
"react-scripts": "^5.0.1",
评论
yarn add react-scripts
作为 2022 年的读者,没有一个答案能解决这样一个事实,即这个问题在 Webpack 5 用户的早期就已经修复了(但没有向后移植到 Webpack 4)。如果您使用的是 Webpack 5,只需升级到至少 5.61.0
即可。请参阅此处有关跟踪此问题的线程的评论。
评论
我在 Vue.js 项目中遇到了同样的问题。我从机器上卸载了新版本(大于 18)的 Node.js 并安装了以前的版本(v16.14.2)。它有效。
评论
我通过更新Webpack后的版本解决了这个错误。但是,这可能是由于另一个加载器或插件。 将显示在原始问题的控制台输出中。请参阅此处的评论。babel-loader
loader-runner
评论
听起来很简单,如果可行,请将 package.json 文件中的所有依赖项升级到最新版本(只需在 npm 中输入名称并使用建议的版本)。同时使用最新的 LTS 版本的 Node.js。
我以前遇到过问题,即使将我的项目迁移到使用 Yarn,我最终也能够解决这个问题。没有必要通过SSL黑客来损害安全性。
echo 'export NODE_OPTIONS=--openssl-legacy-provider' >> ~/.zshrc
为我工作
切换到不同版本的 Node.js 也有效。就我而言,我从 v19.2.0 切换到 v15.14.0。
窗户
安装 nvm-windows。
安装所需的 Node.js 版本。
nvm install 16
更改 Node.js 版本
nvm use 16
检查已安装的 Node.js 版本
nvm list
macOS操作系统
只需设置然后再次重新启动:NODE_OPTIONS
export NODE_OPTIONS=--openssl-legacy-provider
评论
在更改版本或进行任何配置更改之前,只需运行以将包更新到最新的次要版本即可。npm
npm update
这为我解决了这个问题。
要绕过错误(在开发环境中),您只需运行
export NODE_OPTIONS=--openssl-legacy-provider
在启动 Node.js 应用程序之前。
我在将 Next.js 项目部署到 Vercel 时遇到了这个问题。我在文件package.json中降级了 Node.js,方法是添加:
"engines": {
"node": "v16.15.0"
},
评论
"engines": { "node": "v16.1." }
将 Node.js 版本降级到 16.19.1。
节点.js 16.19.1
这解决了我的问题。
评论
就我而言,我使用的是 Azure 设置。当我提出拉取请求时,我收到了这个错误。所以我只是删除了一些带注释的代码,并再次提出了一个拉取请求。
这次我没有看到这个错误。这种情况发生在我的情况下。因此,每当我遇到错误时,我都会做同样的事情。它会对我有用。
Error: error:0308010C:digital envelope routines::unsupported
2023-04-13T13:17:28.4329245Z
2023-04-13T13:17:28.4330391Z at new Hash
(node:internal/crypto/hash:71:19)
2023-04-13T13:17:28.4331701Z > [email protected] build
2023-04-13T13:17:28.4333051Z at Object.createHash
(node:crypto:133:10)
2023-04-13T13:17:28.4333712Z > GENERATE_SOURCEMAP=false react-scripts
build
2023-04-13T13:17:28.4336913Z at module.exports
(/home/vsts/work/1/s/node_modules/webpack/lib/util/createHash.js:135:53)
2023-04-13T13:17:28.4337284Z
2023-04-13T13:17:28.4338580Z at NormalModule._initBuildHash
(/home/vsts/work/1/s/node_modules/webpack/lib/NormalModule.js:417:16)
2023-04-13T13:17:28.4339132Z Creating an optimized production build...
2023-04-13T13:17:28.4340765Z at handleParseError
(/home/vsts/work/1/s/node_modules/webpack/lib/NormalModule.js:471:10)
2023-04-13T13:17:28.4343721Z at
/home/vsts/work/1/s/node_modules/webpack/lib/NormalModule.js:503:5
2023-04-13T13:17:28.4345956Z at
/home/vsts/work/1/s/node_modules/webpack/lib/NormalModule.js:358:12
2023-04-13T13:17:28.4348198Z at
/home/vsts/work/1/s/node_modules/loader-runner/lib/LoaderRunner.js:373:3
2023-04-13T13:17:28.4350393Z at iterateNormalLoaders
(/home/vsts/work/1/s/node_modules/loader-
runner/lib/LoaderRunner.js:214:10)
由于 Fedora,我遇到了这个问题。
我降级到 Node.js v16,但没有任何运气。
问题是 Fedora 在安装 Yarn 时安装了 Node.js v18。
因此,您必须使用以下命令卸载预安装的 Node.js:
sudo dnf remove nodejs
然后使用 nvm 安装 Node.js:
nvm install 16.19.1
然后使用 npm 而不是 DNF 安装 Yarn:
sudo npm install yarn -g
我在另一个项目中遇到了同样的问题。我在这里克隆了它:react-toolkit-example
问题:
set NODE_OPTIONS=--openssl-legacy-provider
它可以作为临时修复程序,但我需要一个适当的解决方案。
对于 Vue.js 相关
启用旧版 OpenSSL 提供程序。
在类 Unix(Linux、macOS、Git Bash 等)上:
export NODE_OPTIONS=--openssl-legacy-provider
在 Windows 命令提示符下:
set NODE_OPTIONS=--openssl-legacy-provider
在 PowerShell 上:
$env:NODE_OPTIONS = "--openssl-legacy-provider"
-
重新配置此脚本,如下所示;
npm run serve
"scripts": { "serve": "vue-cli-service serve --openssl-legacy-provider", },
您必须在此文件中使用 MD5。MD4 是默认值,但它不起作用。 它将毫无问题地工作,直到您删除node_modules文件夹文件夹。
转到此路径: */node_modules/metro-cache/src/
将文件 stableHash.js 如下从 md4 更改为 md5:
评论
npm update
为我修好了。NPM V18版本
评论
yarn upgrade
截至 23 年 8 月 28 日为我工作
适用于 MacOS、Windows 和 Linux
更新到 Node JS 版本 18.17.1 后,我在本地主机上运行时遇到了这个问题,我能够通过在 Package.json 中更新我的启动命令来解决它。
请在下面找到相应的命令。
"start": "export NODE_OPTIONS=--openssl-legacy-provider && react-scripts start"
你也可以使用 npm audit fix --force 这也将修复它,但不知何故它对我不起作用。
评论
set
export
"start": "set NODE_OPTIONS=--openssl-legacy-provider && react-scripts start"
对于那些不想玩弄节点版本的人。 项目是电子应用程序,带有 webpack 4.x 版本。
某些编码和哈希值不匹配。我玩了几个小时来为我使用的节点和依赖项找到匹配的对。
只需将 hashFunction 和 hashDigest 添加到 webpack 配置输出部分即可 输出:{ hashFunction :'sha256', 哈希摘要:'base64' }
当我迁移react js项目以支持打字稿时,我遇到了同样的错误。
- 删除文件夹
node_module
- 运行命令
npm install
- 运行命令
npm audit fix --force
- 尝试启动
服务器这对我有用
评论
"scripts": {
"start": "react-scripts --openssl-legacy-provider start",
"build": "react-scripts --openssl-legacy-provider build",
}
这对我有用。
工作 100% 正确。
溶液:
安装节点版本管理器 (NVM):NVM 是一种简化管理多个 Node.js 版本的工具。如果您没有 NVM,请在终端中运行以下命令进行安装:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
重新启动终端:关闭并重新打开终端以确保 NVM 已正确初始化。
安装 Node.js 16.13.0:使用 NVM 安装所需版本:
nvm install 16.13.0
使用 Node.js 16.13.0:将 Node.js 16.13.0 设置为当前终端会话的活动版本:
nvm use 16.13.0
设置默认版本(可选):如果要使 Node.js 16.13.0 成为新终端会话的默认版本:
nvm alias default 16.13.0
验证安装:通过运行以下命令确认 Node.js 16.13.0 处于活动状态:
node -v npm -v
请记住,您可以在需要时使用 NVM 在不同的 Node.js 版本之间轻松切换。如果要切换回其他版本,请使用具有相应版本号的 nvm use。
如果您有任何问题或需要进一步的帮助,请随时联系我们!
我遇到了同样的问题,以下方法奏效了。
将环境变量设置为 。为此,请打开终端并运行以下命令:NODE_OPTIONS
--openssl-legacy-provider
适用于 macOS、Linux 或 Windows Git Bash
export NODE_OPTIONS=--openssl-legacy-provider
评论
仅运行以下命令解决了我的问题,
npm audit fix --force
我遇到了同样的问题,但是我的 webpack react 应用程序,所以我只是升级了我的 babel-loader 模块,以及所有的 babel 和 webpack 模块,这些模块都已升级并与节点 > V17 兼容,我建议升级受此问题影响的软件包
运行 node v20.6.1、Debian 11.7、Docker 20.10.21 并遇到这个问题,我刚刚使用并解决了。不使用 nvm。我注意到确实将react-scripts升级到5.0.1npm audit fix --force
npm audit fix --force
我在尝试“yarn build”时遇到了这个错误,并且我正在使用节点 v18.17.1
这是我package.json......
"scripts": {
"build": "env-cmd -f ../../dotenv/.env.production webpack --mode production
...
}
...
我的webpack.config.js如下,我正在尝试运行^,但我的webpack.config.js中的模式是开发webpack --mode production
module.exports = {
mode: "development",
entry: './app/App.js',
output: {
path: path.join(__dirname, '/build/'),
publicPath: '/',
filename: 'assets/bundle.js'
},
因此,每个人都建议要么降级版本(在我看来这不是一个解决方案),要么添加这也不是解决方案。我正在使用节点版本 20,我所做的只是更新 npm。
只需运行export NODE_OPTIONS=--openssl-legacy-provider
npm update
然后再次运行该应用程序。当图像未加载时,我在 electron js 项目中遇到了这个问题。非常适合我。
当我启动一个react项目时,尝试打开localhost并运行命令,显示此消息npm start
“错误:0308010C:数字信封例程::不支持”
我只是以这种方式解决了这个问题——
打开同一项目文件夹中的终端并键入>花一些时间安装缺少的包,然后转到同一个项目文件夹终端并点击 This Works Perfectly。(我用的是 Windows。npm audit fix --force
npm start
评论
react-scripts
升级到 >5!react-scripts