nightmare
nightmare copied to clipboard
Cannot install macOS m1 cpu
When I install nightmare in macOS (m1 CPU)
It is not working like this.
How can I fix it?
Encountered the same, I think the old version of Electron being used doesn't (didn't) have arm64 builds. Updating to a new version of electron should work
~ $ npm --version
7.20.0
~ $ npm list electron
viraj@ /Users/viraj
└── [email protected]
~ $ uname -a
Darwin Virajs-MacBook-Pro.local 20.5.0 Darwin Kernel Version 20.5.0: Sat May 8 05:10:31 PDT 2021; root:xnu-7195.121.3~9/RELEASE_ARM64_T8101 arm64
~ $ npm install nightmare
npm WARN deprecated [email protected]: this library is no longer supported
npm WARN deprecated [email protected]: not actively maintained; find alternatives
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142
npm ERR! code 1
npm ERR! path /Users/viraj/node_modules/nightmare/node_modules/electron
npm ERR! command failed
npm ERR! command sh -c node install.js
Downloading electron-v2.0.18-darwin-arm64.zip
npm ERR! Error: GET https://github.com/electron/electron/releases/download/v2.0.18/electron-v2.0.18-darwin-arm64.zip returned 404
npm ERR! /Users/viraj/node_modules/nightmare/node_modules/electron/install.js:54
npm ERR! throw err
npm ERR! ^
npm ERR!
npm ERR! Error: Failed to find Electron v2.0.18 for darwin-arm64 at https://github.com/electron/electron/releases/download/v2.0.18/electron-v2.0.18-darwin-arm64.zip
npm ERR! at Request.<anonymous> (/Users/viraj/node_modules/nugget/index.js:169:61)
npm ERR! at Request.emit (node:events:369:20)
npm ERR! at Request.onRequestResponse (/Users/viraj/node_modules/request/request.js:1059:10)
npm ERR! at ClientRequest.emit (node:events:369:20)
npm ERR! at HTTPParser.parserOnIncomingClient [as onIncoming] (node:_http_client:646:27)
npm ERR! at HTTPParser.parserOnHeadersComplete (node:_http_common:129:17)
npm ERR! at TLSSocket.socketOnData (node:_http_client:512:22)
npm ERR! at TLSSocket.emit (node:events:369:20)
npm ERR! at addChunk (node:internal/streams/readable:313:12)
npm ERR! at readableAddChunk (node:internal/streams/readable:288:9)
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/viraj/.npm/_logs/2021-07-21T02_30_07_552Z-debug.log
Would love a fix to this problem.
Updating to the latest version of nightmare doesn't work. It still uses a version of electron that is too old for M1.
Can this problem be solved ?😒
frustrating... but trying to solve this issue i found "puppeteer" and it works just fine. rip nightmare
Just found a solution - you have to install it using npm install --arch=x64
, and it runs perfectly using Rosetta 2.
I think a proper solution is to bump the electron version to the one that supports m1 cpu? Electron 2.0.18
was released 4 years ago and the latest version is 21.0.1
This is a pretty big deal with a seemingly simple fix. Considering it hasn't been addressed, does this mean nightmare is a dead project?
Was able to solve this by using npm's overrides (described here). If you use "electron": "^11.0.0",
, that is compatible with M1, and works with Nightmare's existing API (as far as I can tell).
"devDependencies": {
"electron": "^11.0.0",
"nightmare": "^3.0.2"
},
"overrides": {
"nightmare": {
"electron": "$electron"
}
}