Node.js 如何修复';fs:不支持重新评估本机模块源';-优美的fs

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重新安装) 这些错误中的大

最近我切换到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
重新安装)

这些错误中的大多数都有类似于线条的错误

(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'
      

      键入
      npm列出优雅的fs
      ,您将看到当前安装了哪些版本的优雅的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,您可能希望运行
      nvm use
      这使节点与npm保持一致

      通过重新安装gulp解决了此错误

      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 info-graceful fs-v
      返回npm的版本(与运行
      npm-v
      相同),而不是graceful fs。要获得优雅的fs版本,请使用类似于
      npm info-graceant-fs | grep-version:
      @Asimov的东西。这对我也很有用。另外,如果您最近重新安装了NodeJS(我通过其网站上的软件包安装了Node,然后用自制的软件包将其替换),请在project home文件夹中运行
      rm-rf Node_modules&&npm install
      。仅供参考,在您的特定示例中,
      gulp
      在版本3中不会更改它,但仅在版本4中更改:这是为我准备的,最后一次删除gulpIn我的案例时,v4之前的
      优雅fs
      模块依赖关系来自
      npm
      本身(版本3.10.3),通过
      cmd-shim@2.0.2
      。我没有看到这一点,直到我使用
      npm list-g-graceant-fs
      列出了全局
      graceant-fs
      依赖项。这帮助我解决了这个问题。我的优雅fs软件包是最新的,但其他一些软件包仍然依赖于旧版本。听起来gulp已经解决了这个问题-不记得我是否安装了gulp with--save dev,但您的方式在我的项目文件夹中工作。为我解决了这个问题。是的,看起来像是一个旧的gulp依赖性问题。