Node.js nodejs中的fs.js模块是否需要自身?

Node.js nodejs中的fs.js模块是否需要自身?,node.js,Node.js,我目前正在学习nodeJS并运行v6.10.2版,我正在查看位于优雅js文件夹中的fs.js模块源代码,并注意到其中的代码: 'use strict' var fs = require('fs') module.exports = clone(fs) function clone (obj) { if (obj === null || typeof obj !== 'object') return obj if (obj instanceof Object) va

我目前正在学习nodeJS并运行v6.10.2版,我正在查看位于优雅js文件夹中的fs.js模块源代码,并注意到其中的代码:

'use strict'

var fs = require('fs')

module.exports = clone(fs)

function clone (obj) {
  if (obj === null || typeof obj !== 'object')
    return obj

  if (obj instanceof Object)
    var copy = { __proto__: obj.__proto__ }
  else
    var copy = Object.create(null)

  Object.getOwnPropertyNames(obj).forEach(function (key) {
    Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key))
  })

  return copy
}

模块如何要求自身?它与克隆关键字有什么关系?我也找不到任何其他名为fs.js的模块

您看到的是包的部分代码,它是NodeJS中内置模块的包装器。因此,此代码不需要自身-require语句导入内置的
fs
模块,其余的代码将其克隆,以便
fs
包的其他部分可以覆盖一些默认的
fs
功能,而不影响原始模块。

这不是内置的
fs
需要自己的模块。这是实际的
fs
模块中需要的优雅的fs替换模块。实际fs模块的代码在这里:@jfriend00我在我安装的nodejs文件夹中找不到实际的fs模块,优雅的fs模块如何需要它?它是内置的,不是单独的文件。更容易在github上找到内置代码,或在调试器中单步执行。优雅的fs包用于什么?从I链接到:“优雅的fs作为fs模块的替代品,进行了各种改进。这些改进旨在规范不同平台和环境之间的行为,并使文件系统访问对错误更具弹性。”