ReactNative-Q&A:Error: error:0308010C:digital envelope routines::unsupported
跑 React Native 工程的时候提示:
Failed to construct transformer: Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:71:19)
at Object.createHash (node:crypto:130:10)
at stableHash (/MyProject/node_modules/metro-cache/src/stableHash.js:19:8)
at JsTransformer.getCacheKey (/MyProject/node_modules/metro/src/JSTransformer/worker.js:471:7)
at getTransformCacheKey (/MyProject/node_modules/metro/src/DeltaBundler/Transformer/getTransformCacheKey.js:39:29)
at new Transformer (/MyProject/node_modules/metro/src/DeltaBundler/Transformer.js:147:28)
at /MyProject/node_modules/metro/src/Bundler.js:54:29
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error’ ],
library: ‘digital envelope routines’,
reason: ‘unsupported’,
code: ‘ERR_OSSL_EVP_UNSUPPORTED’
}
问题原因:系统中更新了 OpenSSL3.0,在OpenSSL3.0中,对允许的加密算法和密钥的大小加了限制。
解决方法:
macOS Linux:
export NODE_OPTIONS=--openssl-legacy-provider
Windows:
set NODE_OPTIONS=--openssl-legacy-provider
问题现象:
提示:
error ~/Documents/Project/MyProject/node_modules/@lux/pkg-report: Command failed.
Exit code: 1
Command: node ./lib/index.js
Arguments:
Directory: ~/Documents/Project/MyProject/node_modules/@lux/pkg-report
Output:
~/Documents/Project/MyProject/node_modules/@lux/pkg-report/lib/utils/report.js:43
name: user.name,
^TypeError: Cannot read properties of undefined (reading ‘name’)
at buildInfo (/Documents/Project/MyProject/node_modules/@lux/pkg-report/lib/utils/report.js:43:24)/Documents/Project/MyProject/node_modules/@lux/pkg-report/lib/utils/report.js:57:21)
at report (
at prepareHandler (/Documents/Project/MyProject/node_modules/@lux/pkg-report/lib/index.js:29:25)/Documents/Project/MyProject/node_modules/@lux/pkg-report/lib/index.js:31:1)
at Object.(
at Module._compile (node:internal/modules/cjs/loader:1198:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1252:10)
at Module.load (node:internal/modules/cjs/loader:1076:32)
问题原因:@lux获取不到 user.name
解决方法:
必须要设置git的全局 user.name user.email
问题现象:js SyntaxError: Invalid character: '\0'
相关解释:
* https://forums.developer.apple.com/forums/thread/739234
* https://github.com/facebook/react-native/issues/41258