JavaScript 中的'import'会获取整个文件吗?



我想知道在前端"导入".js文件的实际用途。

比方说,我们有一个文件module.js:

// module.js
export var a = 10;
var b = 20;

现在,当我们执行以下操作时:

<!DOCTYPE html><html><body>
<script type="module">
import {a} from "./module.js";
</script>
</body></html>

变量b是否通过互联网获取,只在前端丢弃?

如果变量b在后端被丢弃,服务器如何判断哪些是需要的,哪些是不需要的?

如果变量b在前端被丢弃,为什么我们不直接执行以下操作呢?

<!DOCTYPE html><html><body>
<script src="./module.js"></script>
</body></html>

是的,如果您在浏览器中运行该代码,整个文件将通过网络传输、解析和实例化。也就是说,在脚本和模块中,JavaScript引擎可能能够识别死代码(如b变量及其初始化(并丢弃它,如果,这样做的运行时成本似乎是值得的,但很少是这样

但是,大多数捆绑器(Webpack、Parcel等(提供可选的树抖动功能,它们可以在构建捆绑包时应用于模块。他们对捆绑在一起的模块进行静态分析,并确定肯定是"不可分割"的东西;枯木";(因此"树抖动"(,并将该代码排除在捆绑包之外。

最新更新