模块系统与模块格式

时间:2016-03-22 14:22:59

标签: javascript module webpack typescript1.6

我第一次接近模块,我有点困惑。

我从各种文档中读到,有几个模块系统,如commonjs(sync)和requirejs(AMD)。从ES6开始,javascript有自己的模块sys,它基于commonjs。

然后我开始学习webpack,使用commonjs或requirejs 模块格式解决依赖关系,从这里开始我的困惑:据我所知,这两个是模块系统,它们是旨在自行解决依赖关系树; 它的目的。

使用commonjs / requirejs格式(又名语法)然后实现webpack来解析图表有什么意义?

1 个答案:

答案 0 :(得分:0)

CommonJS和AMD都是运行时模块系统。 Webpack正在编译您的代码,因此您不会专门用它来解析图形,而是用于从源文件创建应用程序的构建。要做到这一点,webpack'理解'两种类型的模块,以便它可以分析您的代码,识别依赖关系,并适当地捆绑和优化。

Webpack支持原始模块系统不具备的功能:您可以使用更多动态表达式来表示您需要的模块;你可以扩展require解析行为本身;您可以使用其require.ensure语法指定异步运行时加载。 Webpack的作者可以定义一个新的模块系统来支持这些附加功能,但是您必须重写所有现有源(以及任何第三方模块)以适应构建工具。相反,webpack非常适合支持您已经使用的任何模块,并为您提供额外的工具来处理更复杂的构建需求。