webpack

作者: 大乔是个美少女 | 来源:发表于2019-05-15 17:21 被阅读0次

模块化:

  1. 命名冲突
  2. 文件依赖

模块化编程:

  1. 函数写法
  2. 对象写法
  3. 立即执行函数写法

CommonJS规范
AMD规范

gulp和webpack

  1. gulp 流式处理的 webpack 模块处理
  2. gulp js编码 webpack 走配置

node 是用js做后端,用require.js实现引入。
AMD(异步)、commonJS(同步) 模块化规范。

webpack构建流程

从启动webpack构建到输出结果经历了一系列过程,它们是:

  • 解析webpack配置参数,合并从shell传入和webpack.config.js文件里配置的参数,生产最后的配置结果。
  • 注册所有配置的插件,好让插件监听webpack构建生命周期的事件节点,以做出对应的反应。
  • 从配置的entry入口文件开始解析文件构建AST语法树,找出每个文件所依赖的文件,递归下去。
  • 在解析文件递归的过程中根据文件类型和loader配置找出合适的loader用来对文件进行转换。
  • 递归完后得到每个文件的最终结果,根据entry配置生成代码块chunk。
  • 输出所有chunk到文件系统。

CommonJS模块的特点如下:

  • 所有代码都运行在模块作用域,不会污染全局作用域。
  • 模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。要想让模块再次运行,必须清除缓存。
  • 模块加载的顺序,按照其在代码中出现的顺序。

AMD规范与CommonJS规范的兼容性

CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。AMD规范则是非同步加载模块,允许指定回调函数。由于Node.js主要用于服务器编程,模块文件一般都已经存在于本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适用。但是,如果是浏览器环境,要从服务器端加载模块,这时就必须采用非同步模式,因此浏览器端一般采用AMD规范。

相关文章

网友评论

      本文标题:webpack

      本文链接:https://www.haomeiwen.com/subject/kvkmaqtx.html