如何修复 'fs: re-evaluating native module sources is not supported' - graceful-fs
How to fix 'fs: re-evaluating native module sources is not supported' - graceful-fs
最近我切换到 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 和所有其他插件和模块都已安装(甚至通过 rm -rf node_modules
重新安装)在 /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.
这里的策略是什么:
- 手动修补所有包含 graceful-fs < 4.0.0 的 dep?
- 有一些全局开关可以使用特定的包版本?
- 重新安装一切?
我遇到了这个问题,我可以通过更新 npm
来解决这个问题
sudo npm update -g npm
更新前,npm info graceful-fs | grep 'version:'
的结果是:
version: '3.3.12'
更新后的结果是:
version: '3.9.3'
键入 npm list graceful-fs
,您将看到当前安装了哪些版本的 graceful-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
如您所见,gulp
内心深处依赖于一个非常旧的版本。不幸的是,我无法使用 npm update graceful-fs
自行更新。 gulp
需要更新它们的依赖项。因此,如果您遇到这样的情况,那您就不走运了。但是您可以为具有旧依赖项的项目打开一个问题 - 即 gulp
.
如果你运行宁 nvm 你可能想要 运行 nvm use <desired-node-version>
这使节点与 npm
保持一致
通过重新安装解决了这个错误 gulp
npm uninstall gulp
npm install gulp
正在删除 node_modules 文件夹内容和 运行
npm install bower
npm install
帮我解决了问题!
或尝试更新node
:
brew upgrade node
如果它与 brew
一起安装(就像我的情况一样)。 sudo npm update -g npm
没有为我解决 "same" 问题。
如所述,您也可以尝试命令
npm cache clean
在其他步骤没有完全产生结果(除了更新所有内容)之后,这对我来说已经解决了。
只是要指出,cordova 引入了它自己的 npm 和 graceful-fs 依赖项,所以如果您使用 Cordova,请确保它是最新的,这样您也可以从中获得最新的 graceful-fs。
报告说:文件丢失在... vendor/win32-x64-48/binding.node
我查找了 binding.node 文件并在...
中找到了它
https://github.com/sass/node-sass-binaries
复制名称为 binding.node 的正确文件,它起作用了。
我能够通过以下方式修复它:
- 更新人
package.json
- 正在删除 node_modules 文件夹
- 正在执行
npm install
对于我的 Cordova 项目,卸载和安装 cordova -g 解决了我的问题。
npm uninstall -g cordova
npm install -g cordova
最近我切换到 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 和所有其他插件和模块都已安装(甚至通过 rm -rf node_modules
重新安装)在 /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.
这里的策略是什么:
- 手动修补所有包含 graceful-fs < 4.0.0 的 dep?
- 有一些全局开关可以使用特定的包版本?
- 重新安装一切?
我遇到了这个问题,我可以通过更新 npm
sudo npm update -g npm
更新前,npm info graceful-fs | grep 'version:'
的结果是:
version: '3.3.12'
更新后的结果是:
version: '3.9.3'
键入 npm list graceful-fs
,您将看到当前安装了哪些版本的 graceful-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
如您所见,gulp
内心深处依赖于一个非常旧的版本。不幸的是,我无法使用 npm update graceful-fs
自行更新。 gulp
需要更新它们的依赖项。因此,如果您遇到这样的情况,那您就不走运了。但是您可以为具有旧依赖项的项目打开一个问题 - 即 gulp
.
如果你运行宁 nvm 你可能想要 运行 nvm use <desired-node-version>
这使节点与 npm
通过重新安装解决了这个错误 gulp
npm uninstall gulp
npm install gulp
正在删除 node_modules 文件夹内容和 运行
npm install bower
npm install
帮我解决了问题!
或尝试更新node
:
brew upgrade node
如果它与 brew
一起安装(就像我的情况一样)。 sudo npm update -g npm
没有为我解决 "same" 问题。
如所述
npm cache clean
在其他步骤没有完全产生结果(除了更新所有内容)之后,这对我来说已经解决了。
只是要指出,cordova 引入了它自己的 npm 和 graceful-fs 依赖项,所以如果您使用 Cordova,请确保它是最新的,这样您也可以从中获得最新的 graceful-fs。
报告说:文件丢失在... vendor/win32-x64-48/binding.node
我查找了 binding.node 文件并在...
中找到了它https://github.com/sass/node-sass-binaries
复制名称为 binding.node 的正确文件,它起作用了。
我能够通过以下方式修复它:
- 更新人
package.json
- 正在删除 node_modules 文件夹
- 正在执行
npm install
对于我的 Cordova 项目,卸载和安装 cordova -g 解决了我的问题。
npm uninstall -g cordova
npm install -g cordova