Npm install is failing while running redash [macOSX]

Issue Summary

Im facing npm install issue while trying to setup redash locally on macOS. getting this error

npm WARN Found: leaflet@1.7.1
npm WARN node_modules/leaflet
npm WARN   leaflet@"^1.2.0" from @redash/viz@0.1.1
npm WARN   viz-lib
npm WARN
npm WARN Could not resolve dependency:
npm WARN peer leaflet@"~1.3.1" from leaflet.markercluster@1.4.1
npm WARN node_modules/leaflet.markercluster
npm WARN   leaflet.markercluster@"^1.1.0" from @redash/viz@0.1.1
npm WARN   viz-lib
npm WARN deprecated os-homedir@2.0.0: This is not needed anymore. Use `require('os').homedir()` instead.
npm WARN deprecated sortablejs@1.12.0: Object.assign was not transformed during the build of sortablejs, so it won't work in browsers where this does not exist (for example IE11). Please downgrade your version to 1.10.2 to keep supporting <=IE11 or upgrade to >2.0 where IE will no longer be supported.
npm WARN deprecated bfj-node4@5.3.1: Switch to the `bfj` package for fixes and new features!
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated urix@0.1.0: Please see https://github.com/lydell/urix#deprecated
npm WARN deprecated resolve-url@0.2.1: https://github.com/lydell/resolve-url#deprecated
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated request-promise@4.2.6: request-promise has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated jssha@2.4.2: jsSHA versions < 3.0.0 will no longer receive feature updates
npm WARN deprecated request-promise-native@1.0.9: request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142
npm WARN deprecated left-pad@1.3.0: use String.prototype.padStart()
npm WARN deprecated mdn-browser-compat-data@1.1.2: mdn-browser-compat-data is deprecated. Upgrade to @mdn/browser-compat-data. Learn more: https://github.com/mdn/browser-compat-data/blob/v1.1.2/UPGRADE-2.0.x.md
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
npm WARN deprecated core-js@2.6.11: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated chokidar@2.1.8: Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.
npm WARN deprecated tough-cookie@0.12.1: ReDoS vulnerability parsing Set-Cookie https://nodesecurity.io/advisories/130
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.
npm WARN deprecated eslint-loader@3.0.4: This loader has been deprecated. Please use eslint-webpack-plugin
npm ERR! code 1
npm ERR! git dep preparation failed
npm ERR! command /usr/local/Cellar/node/15.2.0/bin/node /usr/local/lib/node_modules/npm/bin/npm-cli.js install --cache=/Users/k0g0587/.npm/_cacache --prefer-offline=false --prefer-online=false --offline=false --no-progress --no-save --no-audit
npm ERR! > sql-formatter@2.3.3 prepublish
npm ERR! > npm run clean && npm run check && npm run build
npm ERR!
npm ERR!
npm ERR! > sql-formatter@2.3.3 clean
npm ERR! > rimraf lib dist
npm ERR!
npm ERR!
npm ERR! > sql-formatter@2.3.3 check
npm ERR! > npm run lint && npm run test
npm ERR!
npm ERR!
npm ERR! > sql-formatter@2.3.3 lint
npm ERR! > eslint .
npm ERR!
npm ERR!
npm ERR! /Users/k0g0587/.npm/_cacache/tmp/git-clone-f4e329c0/src/core/Tokenizer.js
npm ERR!   78:23  error  Unnecessary escape character: \{  no-useless-escape
npm ERR!   78:25  error  Unnecessary escape character: \{  no-useless-escape
npm ERR!   78:32  error  Unnecessary escape character: \}  no-useless-escape
npm ERR!   78:34  error  Unnecessary escape character: \}  no-useless-escape
npm ERR!
npm ERR! ✖ 4 problems (4 errors, 0 warnings)
npm ERR! (node:27191) Warning: Accessing non-existent property 'cat' of module exports inside circular dependency
npm ERR! (Use `node --trace-warnings ...` to show where the warning was created)
npm ERR! (node:27191) Warning: Accessing non-existent property 'cd' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'chmod' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'cp' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'dirs' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'pushd' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'popd' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'echo' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'tempdir' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'pwd' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'exec' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'ls' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'find' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'grep' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'head' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'ln' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'mkdir' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'rm' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'mv' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'sed' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'set' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'sort' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'tail' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'test' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'to' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'toEnd' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'touch' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'uniq' of module exports inside circular dependency
npm ERR! (node:27191) Warning: Accessing non-existent property 'which' of module exports inside circular dependency
npm ERR! npm ERR! code 1
npm ERR! npm ERR! path /Users/k0g0587/.npm/_cacache/tmp/git-clone-f4e329c0
npm ERR! npm ERR! command failed
npm ERR! npm ERR! command sh -c eslint .
npm ERR!
npm ERR! npm ERR! A complete log of this run can be found in:
npm ERR! npm ERR!     /Users/k0g0587/.npm/_cacache/_logs/2020-11-14T09_37_00_411Z-debug.log
npm ERR! npm ERR! code 1
npm ERR! npm ERR! path /Users/k0g0587/.npm/_cacache/tmp/git-clone-f4e329c0
npm ERR! npm ERR! command failed
npm ERR! npm ERR! command sh -c npm run lint && npm run test
npm ERR!
npm ERR! npm ERR! A complete log of this run can be found in:
npm ERR! npm ERR!     /Users/k0g0587/.npm/_cacache/_logs/2020-11-14T09_37_00_455Z-debug.log
npm ERR! npm ERR! code 1
npm ERR! npm ERR! path /Users/k0g0587/.npm/_cacache/tmp/git-clone-f4e329c0
npm ERR! npm ERR! command failed
npm ERR! npm ERR! command sh -c npm run clean && npm run check && npm run build
npm ERR!
npm ERR! npm ERR! A complete log of this run can be found in:
npm ERR! npm ERR!     /Users/k0g0587/.npm/_cacache/_logs/2020-11-14T09_37_00_511Z-debug.log

npm ERR! A complete log of this run can be found in:```


### Technical details:

* Redash Version: latest git repo master
* Browser/OS: mac
* How did you install Redash: manual install

Are you using Docker?

I have checked out the code and following these steps


Not running via docker.

I do my development on MacOS with Docker so don’t have much to add here. I’d double check you’re using compatible versions of Node and NPM. Seems like a dependency that might no be supported either by your version of the tools or by the OS itself. This used to be the case with the docs repo also. It relied on fsevents which didn’t work on MacOS for a time.

I encountered the same problem on MAC Big Sur 11.2.2 (20D80)

Did someone managed to fix that issue? I’m getting the same problem on Linux.

Can you share details of how you’re installing Redash?

Version of Redash:
Version of Node:
Stack trace of the failure:

I realized looking into this that I’ve misunderstood the problem. Even when running with Docker I still run node install using a local copy of Node.

Has anyone solved this? Can confirm it’s still reproducing on OS X (Big Sur)

I was running into the same thing on Linux, but when I run npm install while in bash then it works.

I think the issue is the yarn.lock file has a broken package, specifically the get-redash fork of sql-formatter fails its eslint check, which aborts the yarn install. Ideally the yarn lockfile should be updated to the latest packages we want to actually be using.

Thanks for isolating the cause! It’s odd that this doesn’t seem to effect everyone, though. For example: I regularly go through the devloop on macos and have never had this issue using the current lockfile or its predecessors. Any idea why it would succeed for some but not others?

I think it was because I was using yarn 3 and not the recommended yarn 1.22. I guess 3 enforces these lint checks whereas 1.22 does not?

1 Like

It’s possible. Eventually we’ll need to pay off our technical debt and upgrade to yarn@3. But it’s acceptable that pinning to 1.22 solves the immediate issue.

1 Like