shershen shershen - 5 months ago 2696
Node.js Question

How to fix 'fs: re-evaluating native module sources is not supported' - graceful-fs

Recently I've made a switch to Node v.6, and It started creating more and more problems with running normal builds grunt/gulp/webpack

For example:

$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp


while gulp and all other plugins and modules are installed (and even re-installed via
npm -rf node_modules
) in /node_modules folder.

Most of those errors have line like

(node:42) fs: re-evaluating native module sources is not supported.
If you are using the graceful-fs module,
please update it to a more recent version.


with 42 as arbitrary number

Like in that issue I've submitted - in angular2-seed repo https://github.com/mgechev/angular2-seed/issues/902

What I've tried to do is downgrade to Node v.5 via n (https://www.npmjs.com/package/n) - it worked. Then remove all
node_modules
folders, then do

npm info graceful-fs -v
3.3.6


ok, lets upgrade or remove and install new:

npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g


all results in

npm info graceful-fs -v
3.3.6


So now I am currenlty stuck with graceful-fs 3.3.6 or even worse in some modules dependances, like

$ angular2-seed
$ npm install

//other lines..
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before
will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.


What could be the strategy here:


  • Manually patch all the deps that contain graceful-fs < 4.0.0?

  • There's some global switch to use specific package version?

  • Reinstall everything?


Answer

I had this problem and I was able to fix this by updating npm

sudo npm update -g npm

Before the update, the result of npm info graceful-fs -v was

3.3.12

After the update the result is

3.9.3

Hope this helps