VIVO小游戏构建编辑器报错2.4.11、2.4.12、3.8.1都必现

  • Creator 版本:2.4.11、2.4.12、3.8.1

  • 目标平台: VIVO小游戏

  • 重现方式:构建VIVO小游戏

  • 首个报错:ERROR game.js from Terser
    Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:69:19)
    at Object.createHash (node:crypto:133:10)

  • 之前哪个版本是正常的:node 版本 14和node 16正常。 node 18 node 20异常

  • 编辑器操作系统: MAC

  • 重现概率:100%

首先 我们先看看 目前的 node 版本
目前最新的版本 node 21
按道理说 node 18 不算新版本

我开始以为只有 2.4 的编辑器异常 现在发现 3.8.1版本问题依旧存在,希望官方可以尽快给出修复方案或者 出一个新的 2.4.13 编辑器

首先 我参考了 论坛的 帖子 https://forum.cocos.org/t/topic/148625/15
开放权限 :sudo chown -R 501:20"/Users/xxxxxx/.npm" 执行

后面打包 最后 构建rpk 报错

image
image
image
image

3.8.1

image
image

2023-11-29 15:33:02-log:  ERROR  game.js from Terser

Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/terser-webpack-plugin/dist/index.js:217:37
at Array.forEach ()
at TerserPlugin.optimizeFn (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/terser-webpack-plugin/dist/index.js:160:259)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :7:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1409:36
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :6:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1405:32
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :6:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at Compilation.seal (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1342:27)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compiler.js:675:18
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1261:4,usr_internal/game.js from Terser
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/terser-webpack-plugin/dist/index.js:217:37
at Array.forEach ()
at TerserPlugin.optimizeFn (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/terser-webpack-plugin/dist/index.js:160:259)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :7:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1409:36
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :6:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1405:32
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :6:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at Compilation.seal (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1342:27)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compiler.js:675:18
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1261:4,usr_main/game.js from Terser
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:69:19)
at Object.createHash (node:crypto:133:10)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/terser-webpack-plugin/dist/index.js:217:37
at Array.forEach ()
at TerserPlugin.optimizeFn (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/terser-webpack-plugin/dist/index.js:160:259)
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :7:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1409:36
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :6:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1405:32
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/HookCodeFactory.js:33:10), :6:1)
at AsyncSeriesHook.lazyCompileHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/tapable/lib/Hook.js:154:20)
at Compilation.seal (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1342:27)
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compiler.js:675:18
at /Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/tools/vivo-pack-tools/node_modules/webpack/lib/Compilation.js:1261:4

2023-11-29 15:33:02-log: rpk 包构建完成!
2023-11-29 15:33:02-debug: 构建插件 vivo-mini-game 的钩子函数 make 执行失败,请检查插件的代码逻辑~53%
2023-11-29 15:33:02-debug: Error: build rpk failed!71%
2023-11-29 15:33:02-warn: Error: build rpk failed!
at BuildStageTask.make (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/modules/platform-extensions/extensions/vivo-mini-game/dist/builder/hooks.ccc:1:6417)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at BuildStageTask.handleHook (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/builder/stage-task-manager.ccc:1:1611)
at BuildStageTask.runPluginTask (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/builder/manager/task-base.ccc:1:1226)
at BuildStageTask.run (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/builder/stage-task-manager.ccc:1:1370)
at BuildTask.handleBuildStageTask (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/builder/index.ccc:1:6956)
at BuildTask.run (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/builder/index.ccc:1:4968)
at build (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/index.ccc:1:3733)
at Ipc. (/Applications/Cocos/Creator/3.8.1/CocosCreator.app/Contents/Resources/app.asar/builtin/builder/dist/worker/msg-util.ccc:1:202)

最重要是 目前 3.8.1 版本 问题同样存在!!!

希望官方人员 回复 谢谢!!

Error: error:0308010C:digital envelope routines::unsupported. 这个问题是 vivo 官方的打包工具内部使用了 node18 以上不支持的版本才会这样,我之前碰到都是降低 node 版本。后续只能等 vivo 官方更新了。

谢谢你的回复,我目前也是降低版本,现在就希望官方人员可以确认一下问题到底是Cocos的还是Vivo的

是 vivo 打包工具的问题,mg 是全局的 npm 包,不是编辑器自带的。这个问题已经同步给对方了,但是据说对方的打包工具全面更新还要一段时间,所以目前只能先降级。

:smiley: 好的,谢谢您的回复,期待VIVO那边后期修复吧

更新一下吧 VIVO官方那边 给了一个修复链接:
node 17及以上,打包vivo RPK失败问题处理
如果有node不想降版本的 或无法降低版本的 可以尝试一下,顺便说一下踩坑记录

1赞

这是别人提的 issue 不是 vivo 官方的答复,有需要你可以在 vivo 处反馈让他们尽快发布。在有合作的情况下,我们不可能因为一些非官方的反馈调整这部分内容,这里的内容都是 mg 生成的,creator 没有参与。

好的,明白了,谢谢您的回复

git上那个方案 也可以成功打包