On my Mac with an Apple M1 chip, in a Node script, process.arch
returns arm64
as expected, with the following code in script.js
:
console.log(process.arch);
Then, I run the Node script through Ruby, with:
`/usr/local/bin/node "script.js"`
Where the backticks run the command in the terminal, and returns the output. But this time, it outputs x64
.
How can I force process.arch
to return arm64
instead, when ran through Ruby? I tried the following, but it wouldn't let me override the read-only property of arch
:
process.arch = 'arm64';
console.log(process.arch);
I need to get process.arch
to output arm64
, rather than use any workarounds, because I am using some popular Node packages that call process.arch
.
CodePudding user response:
I managed to resolve the issue, thanks to the help of the comment from Keith, regarding using the arch
command with arguments.
Essentially, where I previously had:
`/usr/local/bin/node "script.js"`
I now have:
`arch -arm64 /usr/local/bin/node "script.js"`
And it works perfectly.