我希望以一种非抽象的方式来解释这一点。我有一个问题,我相信我正在突破Node的界限,因为关于这个特定主题的文档似乎很少。
首先,这是我的文件布局。
//main.js
var 1 = require('1.js');
var 2 = require('2.js');
第一个文件的目的是将两个子文件加载到进程中。
//1.js
console.log('Test');
module.exports = function msgUSR(text){
console.log(text);
}
此文件的目的是创建一个导出,很显然,此导出可以导入到Main.js中,但是,我需要将一个功能从1.js导入到2.js中,而无需重新加载将整个文件存入内存。
例如。
//2.js
var msgUSR = require('1.js');
msgUSR('blah');
此设置的问题在于,当您需要1.js时,它将重新加载整个文件,包括不是导出代码的所有代码。
我如何只导入文件的导出而不加载不相关的代码。
谢谢!我知道有人对此有解决方案。
编辑: 我知道这里的代码不会复制任何有用的数据。我的观点是,我该如何在父文件已要求的另一个JS文件中要求一个功能。而不是在两个不同的文件中编写完全相同的两个冗长的函数,我需要能够从一个姐妹文件中调用该函数。 这就是为什么这是一个问题。 如果您要在父项需要文件之后再请求该文件,则“测试”将出现两次,这意味着也将加载其他复杂代码。 这个问题给我带来希望的结果是,我可以要求以仅从其中导入函数的方式来请求文件。 再次感谢。
答案 0 :(得分:0)
此设置的问题在于,当您需要1.js时,它将重新加载 整个文件,包括不是导出的任何代码。
require
时,文件将被加载一次,然后被缓存
如何仅导入文件导出而不加载文件 不相关的代码?
因为Node
将使用缓存的版本,所以您不再需要重新加载文件。
require
函数通常有5个步骤: