入口文件

为了方便,这里先解释一下入口文件的概念,这个概念在前端模块化中还是比较重要的,不管是用什么模块化规范,基本都绕不开这个概念。

简单点说,入口文件就是在HTML直接引用的,由浏览器触发执行的JS文件。其它的非入口文件则是由入口文件来直接或间接依赖,由JS互相调用执行。举个简单的例子:

index.html:

  1. <html>
  2. <head>
  3. <script src="main.js"></script>
  4. </head>
  5. <body>
  6. </body>
  7. </html>

main.js

  1. var a = require('./a');
  2. var b = require('./b');
  3. a.doSth();
  4. b.doSth();

这个例子中,main.js由HTML直接引用,是整个程序逻辑开始的地方,因此是入口文件,而被引用的ab则是由main.js引入和调用,因此不是入口文件。

一般而言,我们会将一些逻辑提取封装后放到独立的文件中,最后由入口文件引入来调用它们提供的方法完成整个程序逻辑。也就是一般入口文件关注整体流程,而非入口文件关注公共某一部分的实现。