Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以覆盖CJS或NodeJS中的模块?_Javascript_Node.js_Module_Browserify_Commonjs - Fatal编程技术网

Javascript 是否可以覆盖CJS或NodeJS中的模块?

Javascript 是否可以覆盖CJS或NodeJS中的模块?,javascript,node.js,module,browserify,commonjs,Javascript,Node.js,Module,Browserify,Commonjs,我正在使用“require”在应用程序中导入模块。我想在我的JS文件中更改该模块的功能,从这一步开始,如果有人需要该模块,更改的错误应该会影响。有可能做到这一点吗?这不确切,但有点像这样 //module1.js module.exports = function(p,q) { retrun p+q; } //app.js var change = require(./module1);// I 'require'd it here just to modify,actually ther

我正在使用“require”在应用程序中导入模块。我想在我的JS文件中更改该模块的功能,从这一步开始,如果有人需要该模块,更改的错误应该会影响。有可能做到这一点吗?这不确切,但有点像这样

//module1.js
module.exports = function(p,q) {
retrun p+q;
}

//app.js

var change  = require(./module1);// I 'require'd it here just to modify,actually there is no dependency
var dependency = require(./dependency1) 
//modifying the module1 functionality to something like 
// module.exports = function() {return p-q;}

//dependency1.js
var use1 = require(./module1)
log(use1(8,3))// should result in '5'

enter code here
任何帮助都是值得赞赏的。
谢谢你

我想你不行。节点中的每个js文件都在自己的作用域中执行,因此文件中的
module.exports
仅适用于该特定文件。您无法更改其他文件的
模块。导出
。是的。这就是我在谷歌搜索后发现的。这是实现模块n之类的唯一目的。但应该有一种方法,至少我可以观察到一些变化,并强加我的变化。感谢@laggingreflexWell的响应,就实际更改
module1.js
而言,除非您实际更改了文件
module1.js
本身,否则您无法更改。否则,您可以在文件
module1_change.js
中创建一个“包装器”模块,并在那里进行更改。无论您在哪里需要
module1.js
,现在都需要
module1\u change.js
。这听起来对你有用吗?这就是问题的根源,这让我在这里提出了这个问题。我无法知道他们可能在哪里使用module1。这是我想要更改它(如重写)的唯一原因,以便在执行的顺序中,我的重写可以工作。谢谢你的回复。