Fix “no such file or directory, scandir”
After 15+ years in the web development industry, and seeing the landscape of tooling change, I've really lost patience with tooling errors. Like...Old Man Walsh™ just wants yarn install
to work so he can get on with his work day.
One recent error I ran into was from a dependency of a dependency:
$ node development/build/index.js dev internal/fs/utils.js:307 throw err; ^ Error: ENOENT: no such file or directory, scandir '/Users/myuser/Projects/metamask-extension/node_modules/node-sass/vendor' at Object.readdirSync (fs.js:1021:3) at Object.getInstalledBinaries (/Users/myuser/Projects/metamask-extension/node_modules/node-sass/lib/extensions.js:133:13) at foundBinariesList (/Users/myuser/Projects/metamask-extension/node_modules/node-sass/lib/errors.js:20:15) at foundBinaries (/Users/myuser/Projects/metamask-extension/node_modules/node-sass/lib/errors.js:15:5) at Object.module.exports.missingBinary (/Users/myuser/Projects/metamask-extension/node_modules/node-sass/lib/errors.js:45:5) at module.exports (/Users/myuser/Projects/metamask-extension/node_modules/node-sass/lib/binding.js:15:30) at Object.(/Users/myuser/Projects/metamask-extension/node_modules/node-sass/lib/index.js:14:35) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) { errno: -2, syscall: 'scandir', code: 'ENOENT', path: '/Users/myuser/Projects/metamask-extension/node_modules/node-sass/vendor' } error Command failed with exit code 1.
Annoying as hell -- I just want to work! After sifting through pages of obscure web forums, I was able to find a solution:
npm rebuild node-sass
The npm rebuild {package}
call helped to fix the issue and got me back into the game!
You yutes are so funny. When I was a kid, we had “error: too many trees in the forest” and my favorite “Error: No error.” (Um, then please, work?!)
You’d think we’d have slightly better messages by now. Ok, to be fair, they are slightly better.
Thanks! It worked!