Thanks for the cool project and your work. I like it very much and use it for Whatsapp Web.
I tried running it on my ChromeBook with an arm64-CPU within crostini linux VM and it worked, but just after I added the architecture "arm64" to the check in file nativefier/src/infer/inferOs.js.
1.) Installing the build environment and nativefier
sudo apt-get install curl software-properties-common
sudo apt-get install libnss3-dev
curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -
sudo apt-get install nodejs
git clone https://github.com/jiahaog/nativefier
cd nativefier
sudo npm install nativefier -g
2.) create App for WhatsApp Web
nativefier web.whatsapp.com
Stops with error, see Details below.
I added in file nativefier/src/infer/inferOs.js the function inferArch() the architecture "arm64" and it "worked".
if (arch !== 'ia32' && arch !== 'x64' && arch !== 'arm64' && arch !=='arm') {
//if (arch !== 'ia32' && arch !== 'x64' && arch !=='arm') {
Well actually only changing nativefier/src/infer/inferOs.js was not enouth. Even after a "uninstall" and a new "install" the installed file /usr/lib/node_modules/nativefier/lib/infer/infer/inferOs.js was still not changed? I have no idea if this file is cached somewhere or if the install downloads interOs.js fresh from Web during install?
Anyway after I changed also /usr/lib/node_modules/nativefier/lib/infer/infer/inferOs.js and add there "arm64" too it realy worked without any problem and generates an App for Linux that runs fine on my system.
My system is a ASUS Chromebook Flip C101PA running with ChromeOs 74.0.3729.125.
I used nativefier within the linux VM called "crostini" of ChromeOS.
Here the error message saying that "arm64" is not supported:
inferring [ ] 0%
/usr/lib/node_modules/nativefier/lib/infer/infer/inferOs.js:20
throw new Error(Incompatible architecture ${arch} detected);
^
Error: Incompatible architecture arm64 detected
at inferArch (/usr/lib/node_modules/nativefier/lib/infer/infer/inferOs.js:20:11)
at exports.default (/usr/lib/node_modules/nativefier/lib/options/options/optionsMain.js:23:30)
at /usr/lib/node_modules/nativefier/lib/build/build/buildMain.js:175:9
at nextTask (/usr/lib/node_modules/nativefier/node_modules/async/dist/async.js:5324:14)
at Object.waterfall (/usr/lib/node_modules/nativefier/node_modules/async/dist/async.js:5334:5)
at buildMain (/usr/lib/node_modules/nativefier/lib/build/build/buildMain.js:171:9)
at Object.<anonymous> (/usr/lib/node_modules/nativefier/lib/cli.js:248:16)
at Module._compile (internal/modules/cjs/loader.js:816:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10)
at Module.load (internal/modules/cjs/loader.js:685:32)
at Function.Module._load (internal/modules/cjs/loader.js:620:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:877:12)
at internal/main/run_main_module.js:21:11
Electron & Chromium doesn't have native compiling support over ARM64 architecture
long road here:
https://github.com/electron/electron/issues/17740
Thanks mxdpeep. Closing as that's not within reach of Nativefier. Should be feasible if/when arm64 support lands in Electron.
So, electron is available for arm64. Can we get arm64 support?
Edit: Workes perfectly on windows on arm64 after editing inferOs.js
I vote for arm64 support :)
Most helpful comment
So, electron is available for arm64. Can we get arm64 support?
Edit: Workes perfectly on windows on arm64 after editing inferOs.js