webpack动机

作者: 小7丁 | 来源:发表于2018-08-27 09:10 被阅读13次

    模块化风格


    1. <script>标签

    <script src="module1.js"></script>
    <script src="module2.js"></script>
    <script src="module3.js"></script>
    
    • 缺点:
      • 全局对象的冲突
      • 加载顺序的重要性
      • 需要解决模块依赖的问题
      • 在大项目中难以维护

    2. CommonJs: 同步的require

    用同步的require方法来加载依赖和返回暴露的接口。
    一个模块可以通过给exports对象添加属性,或者设置module.exports的值来描述暴露的对象

    require("module")
    require("../file.js")
    exports.doStuff = function () {}
    module.exports = someValue
    

    在nodejs中使用
    优点:

    • 服务端的代码可以重用
    • npm中有大量模块
    • 用起来简单方便

    缺点:

    • 阻塞调用无法在网络环境应用,网络请求是异步的
    • 不能并行require多个模块

    3. AMD:异步的require

    4. ES6 模块

    import "jquery"
    export function doStuff () {}
    module "localModule" {}
    

    优点:

    • 静态分析方便
    • 作为ES的标准前途是光明的

    缺点:

    • 浏览器支持还需要很长的时间
    • 这种风格的模块不多

    5. webpack分块传输

    • 当编译所有模块时,将模块分成多个较小的块
      这会使得多个请求更小、更快。初始阶段不需要的模块可以按需加载。

    相关文章

      网友评论

        本文标题:webpack动机

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