报错如下:
➜ MacOS ./Anything\ Analyzer
(node:2490) UnhandledPromiseRejectionWarning: Error: dlopen(/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node, 0x0001): tried: '/Users/huqianwei/.gvm/pkgsets/go1.20/global/overlay/lib/better_sqlite3.node' (no such file), '/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (no such file), '/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64'))
at process.func [as dlopen] (node:electron/js2c/node_init:2:2569)
at Module._extensions..node (node:internal/modules/cjs/loader:1930:18)
at Object.func [as .node] (node:electron/js2c/node_init:2:2796)
at Module.load (node:internal/modules/cjs/loader:1472:32)
at Module._load (node:internal/modules/cjs/loader:1289:12)
at c._load (node:electron/js2c/node_init:2:17950)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:242:24)
at Module.require (node:internal/modules/cjs/loader:1494:12)
at require (node:internal/modules/helpers:135:16)
(Use Anything Analyzer --trace-warnings ... to show where the warning was created)
(node:2490) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)
我下载的Anything-Analyzer-3.5.2-x64.dmg。
报错信息里 better-sqlite3 这个原生 Node 模块被编译成了 Apple Silicon(arm64) 架构,导致无法加载。
报错如下:
➜ MacOS ./Anything\ Analyzer
(node:2490) UnhandledPromiseRejectionWarning: Error: dlopen(/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node, 0x0001): tried: '/Users/huqianwei/.gvm/pkgsets/go1.20/global/overlay/lib/better_sqlite3.node' (no such file), '/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64')), '/System/Volumes/Preboot/Cryptexes/OS/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (no such file), '/Applications/Anything Analyzer.app/Contents/Resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64h' or 'x86_64'))
at process.func [as dlopen] (node:electron/js2c/node_init:2:2569)
at Module._extensions..node (node:internal/modules/cjs/loader:1930:18)
at Object.func [as .node] (node:electron/js2c/node_init:2:2796)
at Module.load (node:internal/modules/cjs/loader:1472:32)
at Module._load (node:internal/modules/cjs/loader:1289:12)
at c._load (node:electron/js2c/node_init:2:17950)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:242:24)
at Module.require (node:internal/modules/cjs/loader:1494:12)
at require (node:internal/modules/helpers:135:16)
(Use
Anything Analyzer --trace-warnings ...to show where the warning was created)(node:2490) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag
--unhandled-rejections=strict(see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 2)我下载的Anything-Analyzer-3.5.2-x64.dmg。
报错信息里 better-sqlite3 这个原生 Node 模块被编译成了 Apple Silicon(arm64) 架构,导致无法加载。