gpt4 book ai didi

javascript - 在多个文件中具有相同的 `require` 是否会增加运行时间

转载 作者:数据小太阳 更新时间:2023-10-29 06:14:18 25 4
gpt4 key购买 nike

所以我打算将我的函数分离到单独的文件中,然后将它们导入到单个 index.js 中,然后成为主要导出器。所以我想知道在我的几个文件中使用类似 var bcrypt = require('bcrypt') 的东西是否比只在一个文件中慢。

这是我计划在 index.js 中分组和导出的方式

const fs = require('fs');
const path = require('path')
const modules = {}

const files = fs.readdirSync(__dirname)
files.forEach(file => {
if (file === 'index.js') return
let temp = require(path.join(__dirname, file))

for (let key in temp) {
modules[key] = temp[key]
}
});
module.exports = modules

举个例子说明我的意思:

文件1.js

var bcrypt = require("bcrypt");

module.exports.file1test = "hi"

文件2.js

var bcrypt = require("bcrypt");

module.exports.file2test = "bye"

最佳答案

不,它没有。每当模块第一次被 required 时,模块的代码就会运行,为它的导出分配一些东西,然后返回这些导出。该模块的进一步 require 只需再次引用这些导出。逻辑类似这样:

const importModule = (() => {
const exports = {};
return (name) => {
if (!exports[name]) exports[name] = runModule(name);
return exports[name];
};
})();

因此,同一模块的多次导入并不比多次引用一个对象更昂贵。

关于javascript - 在多个文件中具有相同的 `require` 是否会增加运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com