首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >"npm运行“与ERR_OSSL_EVP_UNSUPPORTED失败

"npm运行“与ERR_OSSL_EVP_UNSUPPORTED失败
EN

Stack Overflow用户
提问于 2022-01-04 16:35:03
回答 2查看 8.7K关注 0票数 2

我有一个现有的项目,我最近安装了一个新的设备。

这是一个Laravel + vue项目。

当我运行npm run watch时,会得到以下错误:

代码语言:javascript
运行
复制
> development
> cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"

10% building 1/1 modules 0 active
webpack is watching the files…

10% building 1/3 modules 2 active ...er/index.js??ref--5-4!/var/www/node_modules/sass-loader/lib/loader.js??ref--5-5!/var/www/resources/sass/app.scssError: 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 (/var/www/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/var/www/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/var/www/node_modules/webpack/lib/NormalModule.js:471:10)
    at /var/www/node_modules/webpack/lib/NormalModule.js:503:5
    at /var/www/node_modules/webpack/lib/NormalModule.js:358:12
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:186:6
    at runSyncOrAsync (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:178:3
    at loadLoader (/var/www/node_modules/loader-runner/lib/loadLoader.js:47:3)
    at iteratePitchingLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
    at iteratePitchingLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:188:6
    at runSyncOrAsync (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:124:12)
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:178:3
    at loadLoader (/var/www/node_modules/loader-runner/lib/loadLoader.js:47:3)
    at iteratePitchingLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
    at runLoaders (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:365:2)
    at NormalModule.doBuild (/var/www/node_modules/webpack/lib/NormalModule.js:295:3)
    at NormalModule.build (/var/www/node_modules/webpack/lib/NormalModule.js:446:15)
    at Compilation.buildModule (/var/www/node_modules/webpack/lib/Compilation.js:739:10)
    at /var/www/node_modules/webpack/lib/Compilation.js:981:14
    at /var/www/node_modules/webpack/lib/NormalModuleFactory.js:409:6
    at /var/www/node_modules/webpack/lib/NormalModuleFactory.js:155:13
    at AsyncSeriesWaterfallHook.eval [as callAsync] (eval at create (/var/www/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at /var/www/node_modules/webpack/lib/NormalModuleFactory.js:138:29
    at /var/www/node_modules/webpack/lib/NormalModuleFactory.js:346:9
    at processTicksAndRejections (node:internal/process/task_queues:78:11)
node:internal/crypto/hash:67
  this[kHandle] = new _Hash(algorithm, xofLen);
                  ^

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 (/var/www/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/var/www/node_modules/webpack/lib/NormalModule.js:417:16)
    at /var/www/node_modules/webpack/lib/NormalModule.js:452:10
    at /var/www/node_modules/webpack/lib/NormalModule.js:323:13
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /var/www/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/var/www/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /var/www/node_modules/babel-loader/lib/index.js:55:103 {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

我使用的是Node.js v17.3.0、NPM8.3.0和webpack 4.41.4。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-04 16:57:17

Node.js版本17已经切换到使用OpenSSL 3.0。他们建议

虽然OpenSSL 3.0API大部分应该与OpenSSL 1.1.1提供的API兼容,但由于对允许的算法和密钥大小的严格限制,我们确实预计会对生态系统产生一些影响。 如果您在使用ERR_OSSL_EVP_UNSUPPORTED 17的应用程序中遇到Node.js错误,很可能您正在使用的应用程序或模块试图使用默认情况下在OpenSSL 3.0中不允许的算法或密钥大小。添加了命令行选项--openssl-legacy-provider,作为这些严格限制的临时解决办法,将其还原给遗留提供程序。

这是Webpack版本5和6中的已解决,但是没有计划将此修复程序支持到版本4。

要将--openssl-legacy-provider标志传递给Node,可以在命令前面加上环境变量赋值:

代码语言:javascript
运行
复制
NODE_OPTIONS=--openssl-legacy-provider npm run watch
票数 8
EN

Stack Overflow用户

发布于 2022-10-30 12:47:08

对我(在Ubuntu22.04上)起作用的是将它添加到package.json文件中:

代码语言:javascript
运行
复制
{
  "scripts": {
    "start": "react-scripts --openssl-legacy-provider start"
  }
}

我在本文中找到了Borislav的完整答案:修正-错误:0308010c:数字信封例程::不支持

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70582072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档