最近我转向了Node v.6,它开始在运行普通版本时出现越来越多的问题grunt / gulp / webpack
例如:
$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp
虽然在/ node_modules文件夹中安装了gulp和所有其他插件和模块(甚至通过rm -rf node_modules
重新安装)。
大多数错误都有类似
的行(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.
以42作为任意数字
就像我提交的那个问题一样 - 在angular2-seed repo https://github.com/mgechev/angular2-seed/issues/902
中我尝试做的是通过n(https://www.npmjs.com/package/n)降级到Node v.5 - 它有效。然后删除所有node_modules
个文件夹,然后执行
npm info graceful-fs -v
3.3.6
好的,让我们升级或删除并安装新的:
npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g
所有结果
npm info graceful-fs -v
3.3.6
所以现在我当前坚持使用 graceful-fs 3.3.6 ,或者更糟糕的是在一些模块依赖中,比如
$ 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.
这里的策略可能是什么:
答案 0 :(得分:169)
我遇到了这个问题,我可以通过更新npm
sudo npm update -g npm
在更新之前,npm info graceful-fs | grep 'version:'
的结果是:
version: '3.3.12'
更新后,结果为:
version: '3.9.3'
答案 1 :(得分:73)
键入npm list graceful-fs
,您将看到当前安装了哪些版本的graceful-f。
在我的情况下,我得到了:
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
正如您所看到的,gulp
内心深处依赖于一个非常古老的版本。很遗憾,我无法使用npm update graceful-fs
自行更新。 gulp
需要更新其依赖项。所以,如果你有这样的案例,那你就不走运了。但是您可能会为具有旧依赖关系的项目打开一个问题 - 即gulp
。
答案 2 :(得分:21)
解决了这个错误,重新安装gulp
npm uninstall gulp
npm install gulp
答案 3 :(得分:1)
删除node_modules文件夹内容并运行
npm install bower
npm install
为我解决了这个问题!
答案 4 :(得分:1)
答案 5 :(得分:1)
只是要指出cordova带有优雅-ss依赖性的自己的npm,所以如果你使用Cordova确保它是最新的,那么你也可以获得最新的优雅fs。
答案 6 :(得分:1)
我能够解决它:
package.json
npm install
答案 7 :(得分:0)
如果你正在运行nvm,你可能想要运行nvm use <desired-node-version>
这使节点与npm保持一致
答案 8 :(得分:0)
或尝试更新node
:
brew upgrade node
如果它与brew
一起安装(就像我的情况一样)。 sudo npm update -g npm
没有解决同样的问题。我的问题。
答案 9 :(得分:0)
报告说:... vendor / win32-x64-48 / binding.node中缺少一个文件
我查找了binding.node文件,我在...中找到了它。
https://github.com/sass/node-sass-binaries
使用名称binding.node复制正确的文件,它可以正常工作。
答案 10 :(得分:0)
对于我的Cordova项目,卸载并安装cordova -g为我解决了这个问题。
npm uninstall -g cordova
npm install -g cordova