修改NodeJS核心程序

时间:2014-10-08 06:03:56

标签: javascript node.js

我尝试将一些自定义函数添加到NodeJS的FS模块中,该模块是NodeJS的一部分。核心计划。我在以下位置找到了相应的文件(fs.js):/ usr / lib / nodejs。问题是,当调用相应的模块和函数时,我所做的更改似乎不会影响任何内容。

我做的是在/usr/lib/nodejs/fs.js中添加了这样的函数:

      fs.someRandomFunc = function(){return 'Yeah!'}

然而,当我调用该函数时,它回复说:

      var fs = require('fs')
      console.log(fs.someRandomFunc())

      // Error Message
      TypeError: Object #<Object> has no method 'someRandomFunc'

顺便说一句,这也适用于其他核心模块,例如module.js和path.js.这是否因为NodeJS缓存核心JS程序而不是从/ usr / lib / nodejs加载它?

任何解决此问题的想法都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:4)

fs是NodeJS的一部分&#39; Core Modules。因此,它被编译成二进制和分布式。因此,除非重新编译它们,否则修改源代码不会生效。

直接修改Node的源文件无论如何都不是一个好主意。您可以/应该改为使用您自己的函数扩展现有fs模块,例如graceful-fs,或者将其完全替换为您的版本,例如fs-extra