Fix “no such file or directory, scandir”

By  on  

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!

Recent Features

  • By
    Vibration API

    Many of the new APIs provided to us by browser vendors are more targeted toward the mobile user than the desktop user.  One of those simple APIs the Vibration API.  The Vibration API allows developers to direct the device, using JavaScript, to vibrate in...

  • By
    5 More HTML5 APIs You Didn’t Know Existed

    The HTML5 revolution has provided us some awesome JavaScript and HTML APIs.  Some are APIs we knew we've needed for years, others are cutting edge mobile and desktop helpers.  Regardless of API strength or purpose, anything to help us better do our job is a...

Incredible Demos

  • By
    Element Position Swapping Using MooTools 1.2

    We all know that MooTools 1.2 can do some pretty awesome animations. What if we want to quickly make two element swap positions without a lot of fuss? Now you can by implementing a MooTools swap() method. MooTools 1.2 Implementation MooTools 1.2 Usage To call the swap...

  • By
    iPhone Checkboxes Using MooTools

    One of the sweet user interface enhancements provided by Apple's iPhone is their checkbox-slider functionality. Thomas Reynolds recently released a jQuery plugin that allows you to make your checkboxes look like iPhone sliders. Here's how to implement that functionality using the beloved...

Discussion

  1. Brian

    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.

  2. A

    Thanks! It worked!

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!