qier222 / YesPlayMusic

高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron:
https://music.qier222.com
MIT License
28.98k stars 4.24k forks source link

yarn electron:build 失败 #1964

Open microcai opened 1 year ago

microcai commented 1 year ago
yarn run v1.22.19
$ vue-cli-service electron:build -p never
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
 INFO  Bundling render process:

⠙  Building modern bundle for production...Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/home/cai/projects/YesPlayMusic/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:471:10)
    at /home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:503:5
    at /home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:358:12
    at /home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/home/cai/projects/YesPlayMusic/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /home/cai/projects/YesPlayMusic/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /home/cai/projects/YesPlayMusic/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
⠙  Building modern bundle for production...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
⠴  Building modern bundle for production.../home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:114
                        throw e;
                        ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:71:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/home/cai/projects/YesPlayMusic/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:471:10)
    at /home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:503:5
    at /home/cai/projects/YesPlayMusic/node_modules/webpack/lib/NormalModule.js:358:12
    at /home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at context.callback (/home/cai/projects/YesPlayMusic/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at /home/cai/projects/YesPlayMusic/node_modules/cache-loader/dist/index.js:147:7
    at /home/cai/projects/YesPlayMusic/node_modules/graceful-fs/graceful-fs.js:61:14
    at FSReqCallback.oncomplete (node:fs:192:23) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
microcai commented 1 year ago

node --version v16.18.1 yarn --version 1.22.19

jinghuashang commented 6 months ago

主要是因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响,但 V17 和之后版本会出现这个错误

在 package.json 内 serve build lint字段修改成如下

Windows:

"serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", "lint": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service lint",

Linux & Mac OS:

"serve": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve", "build": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build", "lint": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service lint",