Javascript ES6/2015中的导出何时会中断静态模块分辨率

Javascript ES6/2015中的导出何时会中断静态模块分辨率,javascript,module,static,ecmascript-6,Javascript,Module,Static,Ecmascript 6,考虑以下代码 /----lib.js------ export const willThisBreakStaticModuleResolution={iAm:'a literal object'}; 导出默认函数(){…} //------main.js------ 从'lib.js'导入{willThisBreakStatic}; ... lib.js中的命名导出是否会破坏静态模块解析,或者只有在对象作为默认导出时才会发生这种情况 更新 所谓“中断静态解析”,我的意思是,如果“系统”中的所有

考虑以下代码

/----lib.js------
export const willThisBreakStaticModuleResolution={iAm:'a literal object'};
导出默认函数(){…}
//------main.js------
从'lib.js'导入{willThisBreakStatic};
...
lib.js中的命名导出是否会破坏静态模块解析,或者只有在对象作为默认导出时才会发生这种情况

更新

所谓“中断静态解析”,我的意思是,如果“系统”中的所有其他模块也将在运行时动态解析,而不是在编译时静态解析

lib.js中的命名导出是否会破坏静态模块解析,或者只有在对象作为默认导出时才会发生这种情况

您似乎假设命名的导出以某种方式成为默认导出的“属性”。情况并非如此(*),因此这不会影响静态分辨率

模块的导出通过
ExportEntry
s进行描述,每个命名导出以及默认导出都有一个条目

有不同的
导出
声明的示例



*:当然,Transpiler目前可能会使用ES5语法来模拟模块,但这是实现的一个限制。

谢谢您的回答。那么,它是否会破坏静态分辨率?但这会吗
export const myFunc=function(){…}导出默认值{a函数:myFunc}
No,为什么?也许我不清楚你所说的“打破静态解析”是什么意思。因为如果这是在模块2中导入的:
import funcs from
module1
,那么
funcs.anotherFunc=function(){…}`将在模块3中工作从模块1导入funcs:
funcs.anotherFunc()//工作啊。我想我误解了你的问题。是的,如果某个对象导出了一个对象,并且该对象发生了变化,那么导入模块的所有其他对象也将看到变化的对象。这就是对象的工作方式,模块不会改变这一点。