Node.js 如何修复';fs:不支持重新评估本机模块源';-优美的fs
最近我切换到Node v.6,它开始在运行普通构建grunt/gulp/webpack时产生越来越多的问题 例如:Node.js 如何修复';fs:不支持重新评估本机模块源';-优美的fs,node.js,npm,node-modules,npm-install,Node.js,Npm,Node Modules,Npm Install,最近我切换到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 而gulp和所有其他插件和模块都安装在/node_modules文件夹中(甚至通过rm-rf node_modules重新安装) 这些错误中的大
$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp
而gulp和所有其他插件和模块都安装在/node_modules文件夹中(甚至通过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作为任意数
就像我提交的那期一样——安圭拉2号种子回购协议
我试图做的是通过n()降级到节点v.5-它成功了。然后删除所有node\u模块
文件夹,然后执行以下操作
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
因此,现在我一直坚持使用优雅的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.
这里的策略是什么:
- 手动修补所有包含优雅fs<4.0.0的DEP
- 有一些全局切换来使用特定的软件包版本
- 重新安装一切李>
- 我有这个问题,我可以通过更新
npm
在更新之前,sudo npm update -g npm
的结果是:npm-info-fs | grep“version:”
更新后,结果是:version: '3.3.12'
version: '3.9.3'
键入
,您将看到当前安装了哪些版本的优雅的fs 就我而言,我得到了:npm列出优雅的fs
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
npm列表 @请求/承诺-core@0.0.1/projects/request/promise核心 +-- gulp@3.9.1 |--乙烯基-fs@0.3.14 |+--glob-watcher@0.0.6 | | `-- gaze@0.5.2 | | `-- globule@0.1.0 | | `-- glob@3.1.21
||`--优雅-fs@1.2.3如果您正在运行nvm,您可能希望运行
这使节点与npm保持一致通过重新安装gulp解决了此错误nvm use
npm uninstall gulp npm install gulp
删除节点模块文件夹内容并运行npm install bower npm install
帮我解决了这个问题 或尝试更新
:节点
如果安装了brew upgrade node
(与我的情况类似)brew
没有为我解决“相同”的问题。如前所述,您也可以尝试该命令sudo npm update-g npm
npm cache clean
npm uninstall -g cordova npm install -g cordova
在其他步骤没有完全产生结果(除了更新所有内容)之后,这为我修复了它。只是要指出,cordova带来了它自己的npm和优雅的fs依赖项,因此如果使用cordova,请确保它是最新的,以便也从中获得最新的优雅的fs 报告说:在。。。供应商/win32-x64-48/binding.node 我查找binding.node文件,在
复制名为binding.node的正确文件,它就会工作。我可以通过以下方式修复它:- 通过
package.json更新
- 正在删除node_modules文件夹
- 正在执行
npm安装
在我的Cordova项目中,卸载和安装Cordova-g为我解决了这个问题npm uninstall -g cordova npm install -g cordova
我对Gulp和我的一些模块也有同样的问题。我通过升级模块以使用最新的优雅fs修复了我的模块,但我不确定是否有解决方案来修复其他尚未升级的模块。看来Gulp 3.x中不会修复此问题,您必须升级到Gulp 4.x,谢谢@Jorge。这有助于解决问题。我还没有完全康复appname@0.1.x/path/of/app带有优雅的-fs@4.1.4每次在我的应用程序目录中运行npm安装时都会突出显示。但我现在还活在这个问题上。嗨@Geo,这里也是,看看模拟nico的答案,我们有相同软件包的不同版本,因为其他工具严格依赖于这些版本。为了消除警告,我们需要升级所有这些文件或寻找替代文件。这对我来说不起作用,我必须运行
,请注意nvm use v6.2.1
返回npm的版本(与运行npm info-graceful fs-v
相同),而不是graceful fs。要获得优雅的fs版本,请使用类似于npm-v
@Asimov的东西。这对我也很有用。另外,如果您最近重新安装了NodeJS(我通过其网站上的软件包安装了Node,然后用自制的软件包将其替换),请在project home文件夹中运行npm info-graceant-fs | grep-version:
。仅供参考,在您的特定示例中,rm-rf Node_modules&&npm install
在版本3中不会更改它,但仅在版本4中更改:这是为我准备的,最后一次删除gulpIn我的案例时,v4之前的gulp
模块依赖关系来自优雅fs
本身(版本3.10.3),通过npm
。我没有看到这一点,直到我使用cmd-shim@2.0.2
列出了全局npm list-g-graceant-fs
依赖项。这帮助我解决了这个问题。我的优雅fs软件包是最新的,但其他一些软件包仍然依赖于旧版本。听起来gulp已经解决了这个问题-不记得我是否安装了gulp with--save dev,但您的方式在我的项目文件夹中工作。为我解决了这个问题。是的,看起来像是一个旧的gulp依赖性问题。graceant-fs
- 通过