现在,我们可以在浏览器上执行以下操作:
// module.js
var a = 10;
var m = 20;
export {a,a as aa};
export var b = 30;
export function f(){return m;};
export class cl{}然后在主文件上,比如index.html:
<!DOCTYPE html><html><body>
<script type="module">
import {a,b,aa,aa as aaa, f, cl} from "./module.js";
import * as X from "./module.js";
console.log(a,b,aa,aaa,X.aa,X.aaa,f(),cl);
// 10 30 10 10 10 undefined 20 class cl{}
export {a,b as z} from "./module.js";
// re-exports a and b
export * from "./module.js";
// re-exports everything except default
</script>
</body></html>我们甚至可以使用新的导入语法( ECMASCript2020 ())动态加载导入。
这让我不禁要问,传统的模块捆绑包,如webpack、browserify、rollup、AMD、requireJS等是否已经过时了?就我个人而言,我从未使用过它们。如果使用过它们的人告诉我,现在是否有必要使用它们来实现它们过去提供的好处,我将不胜感激。
发布于 2020-07-30 14:53:29
加载器AMD正在变得过时,因为人们不使用它们,除了webpack,这已经获得了许多追随者,尽管webpack本身不是一个加载器,而是一个模块定义和资源包装器与许多实用程序,并被框架javascript最常用的(角度,vuejs,反应)使用,它最好的功能之一是开发服务器。
我认为webpack进展得很好,它的目的不是加载模块,而是优化加载和开发,它是一个开发工具,而不是像amd加载器那样的运行库,所以它将继续很好地集成到ES2020中,因为ES是一个规范,不能提供包装器提供的工具。
发布于 2020-07-30 14:26:05
requirejs或其他基于AMD的加载器仍然很好,如果你有一些相当老的香草JS,他们仍然工作得很好。如果你正在开发一些新的UI/JS应用,你可以使用webpack。ES2020可能不是在所有浏览器中都可用,所以必须等到在主要浏览器中获得支持。
https://stackoverflow.com/questions/63167239
复制相似问题