当导入的文件正在导入导入的文件时,会发生什么情况?



我有三个文件: - 主要.js <- 依赖项:模块.js,助手.js - 模块.js <- 依赖项:助手.js - 助手.js <- 无依赖项

主.js和模块.js都是从帮助程序.js导入的;主.js都是从模块导入的.js

函数main.js 是从模块导入.js使用来自辅助程序的函数.js

当我运行 main.js:helper.js 会被导入两次,一次是 main.js一次是 module.js,还是 main.js 只导入一次 helper.js?

主.js:

import {someFunction} from "./helper.js";
import {someOtherFunction} from "./module.js";
someFunction();
someOtherFunction();

模块.js:

import {someFunction} from "./helper.js";
function someOtherFunction(){
// do something using someFunction();
someFunction();
};
export {someOtherFunction};

助手.js:

function someFunction(){
// do something
}; 
export {someFunction};

一个模块将始终加载一次。

ES 262规范在第413页指出:

[导入模块] 如果正常完成,则必须是幂等的。每次调用它时,都使用特定的 引用模块,说明符对作为参数,它必须返回相同的模块记录实例。

多个不同的引用模块,说明符对可以映射到同一个模块记录实例。实际映射 语义是实现定义的,但通常规范化过程作为映射的一部分应用于说明符 过程。典型的规范化过程将包括诸如字母大小写折叠和扩展 相对路径说明符和缩写路径说明符。

相关内容

  • 没有找到相关文章

最新更新