Skip to content

npm install builds incorrectly on MacBook M3 - error: "mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')" #44

Description

@kjrhody

When I run npm install the build finishes but it seems to build with the x86_64 architecture instead of the new arm64 architecture needed for the M3 chip that my computer uses. Then when I try to run my application, I get the following error:

W20240322-10:25:49.037(-4)? (STDERR) /Users/x/.meteor/packages/promise/.0.12.2.1p12lm2.cswei++os+web.browser+web.browser.legacy+web.cordova/npm/node_modules/meteor-promise/promise_server.js:218
W20240322-10:25:49.037(-4)? (STDERR)       throw error;
W20240322-10:25:49.037(-4)? (STDERR)       ^
W20240322-10:25:49.037(-4)? (STDERR) 
W20240322-10:25:49.037(-4)? (STDERR) Error: dlopen(/Users/x/node_modules/modern-syslog/build/Release/core.node, 0x0001): tried: '/Users/x/node_modules/modern-syslog/build/Release/core.node' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/x/node_modules/modern-syslog/build/Release/core.node' (no such file), '/Users/x/node_modules/modern-syslog/build/Release/core.node' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))
W20240322-10:25:49.037(-4)? (STDERR)     at Object.Module._extensions..node (internal/modules/cjs/loader.js:1175:18)
W20240322-10:25:49.037(-4)? (STDERR)     at Module.load (internal/modules/cjs/loader.js:981:32)
W20240322-10:25:49.037(-4)? (STDERR)     at Module.Mp.load (/Users/x/.meteor/local/build/programs/server/runtime.js:37:33)
W20240322-10:25:49.037(-4)? (STDERR)     at Function.Module._load (internal/modules/cjs/loader.js:821:12)
W20240322-10:25:49.037(-4)? (STDERR)     at Module.require (internal/modules/cjs/loader.js:1005:19)
W20240322-10:25:49.038(-4)? (STDERR)     at require (internal/modules/cjs/helpers.js:107:18)
W20240322-10:25:49.038(-4)? (STDERR)     at Object.<anonymous> (/Users/x/node_modules/modern-syslog/index.js:9:12)
W20240322-10:25:49.038(-4)? (STDERR)     at Module._compile (internal/modules/cjs/loader.js:1116:14)
W20240322-10:25:49.038(-4)? (STDERR)     at Module.Mp._compile (/Users/x/.meteor/local/build/programs/server/runtime.js:77:23)
W20240322-10:25:49.038(-4)? (STDERR)     at Object.Module._extensions..js (/Users/x/.meteor/local/build/programs/server/runtime.js:105:23)
W20240322-10:25:49.038(-4)? (STDERR)     at Module.load (internal/modules/cjs/loader.js:981:32)
W20240322-10:25:49.038(-4)? (STDERR)     at Module.Mp.load (/Users/x/.meteor/local/build/programs/server/runtime.js:37:33)
W20240322-10:25:49.038(-4)? (STDERR)     at Function.Module._load (internal/modules/cjs/loader.js:821:12)
W20240322-10:25:49.038(-4)? (STDERR)     at Module.require (internal/modules/cjs/loader.js:1005:19)
W20240322-10:25:49.038(-4)? (STDERR)     at require (internal/modules/cjs/helpers.js:107:18)
W20240322-10:25:49.038(-4)? (STDERR)     at Object.<anonymous> (/Users/x/node_modules/filog/lib/Senders/SyslogSender.js:13:21) {
W20240322-10:25:49.038(-4)? (STDERR)   code: 'ERR_DLOPEN_FAILED'
W20240322-10:25:49.038(-4)? (STDERR) }
=> Exited with code: 1
=> Your application is crashing. Waiting for file change.

I can determine the architecture used in this file with the following:

% file node_modules/modern-syslog/build/Release/obj.target/core/core.o
node_modules/modern-syslog/build/Release/obj.target/core/core.o: Mach-O 64-bit object x86_64

I do not see any documentation or information about how to pass a flag to determine which architecture to use in this build?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions