问题
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 rm -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?
回答1:
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 | grep 'version:'
was:
version: '3.3.12'
After the update the result is:
version: '3.9.3'
回答2:
Type npm list graceful-fs
and you will see which versions of graceful-fs are currently installed.
In my case I got:
npm list graceful-fs
@request/promise-core@0.0.1 /projects/request/promise-core
+-- gulp@3.9.1
| `-- vinyl-fs@0.3.14
| +-- glob-watcher@0.0.6
| | `-- gaze@0.5.2
| | `-- globule@0.1.0
| | `-- glob@3.1.21
| | `-- graceful-fs@1.2.3 <==== !!!
| `-- graceful-fs@3.0.8
`-- publish-please@2.1.3
+-- nsp@2.4.0
| `-- nodesecurity-npm-utils@4.0.1
| `-- silent-npm-registry-client@2.0.0
| `-- npm-registry-client@7.1.0
| `-- graceful-fs@4.1.3
`-- read-pkg@1.1.0
`-- load-json-file@1.1.0
`-- graceful-fs@4.1.4
As you can see gulp
deep down depends on a very old version. Unfortunately, I can't update that myself using npm update graceful-fs
. gulp
would need to update their dependencies. So if you have a case like this you are out of luck. But you may open an issue for the project with the old dependency - i.e. gulp
.
回答3:
Solved this bug with reinstall gulp
npm uninstall gulp
npm install gulp
回答4:
Deleting node_modules folder contents and running
npm install bower
npm install
solved the problem for me!
回答5:
As described here, you can also attempt the command
npm cache clean
That fixed it for me, after the other steps had not fully yielded results (other than updating everything).
回答6:
Just to point out that cordova brings in it's own npm with the graceful-fs dependency, so if you use Cordova make sure that it is the latest so you get the latest graceful-fs from that as well.
回答7:
I was able to fix it by:
- updating by
package.json
- deleting the node_modules folder
- executing
npm install
回答8:
if you are running nvm you might want to run nvm use <desired-node-version>
This keeps node consistent with npm
回答9:
Or try to update node
:
brew upgrade node
If it is installed with brew
(like in my case). sudo npm update -g npm
did not solve the "same" problem for me.
回答10:
The report says : a file is missing in ... vendor/win32-x64-48/binding.node
I looked for the binding.node file and I find it in...
https://github.com/sass/node-sass-binaries
Copy the correct file with the name binding.node and it works.
回答11:
In the case of my Cordova-project, uninstalling and installing cordova -g fixed the problem for me.
npm uninstall -g cordova
npm install -g cordova
来源:https://stackoverflow.com/questions/37346512/how-to-fix-fs-re-evaluating-native-module-sources-is-not-supported-graceful