zoukankan      html  css  js  c++  java
  • Webpack 3.0 前端工程化(背景、模块化、环境准备)

    (1)背景

      

      作者受Google工具的模块分割 影响有了创作灵感

      

      

      随着SPA的推广,前端应用复杂度快速提升。

      

      

       

       MVC时代便有了模块化的初期思想

      

      三大框架便将模块化概念推广普及开来。

    而模块化的同时必须面对打包和相关新型语法转换的问题

      

       

    上述可以看出HTML、CSS发展史,预处理语言Less、Sass等,怎么样写一份代码(新旧语法),可以在不同浏览器正常运行,这里便用到了构建工具

      

    coffeeScript是由Ruby社区推出的js语法糖

      

       

       

       

      

    去中心化:依赖包较为专注解决一个问题,较为零散

      

    因为目前的3大主流框架都使用webpack作为默认构建工具

      

    (2)导学

      

       

       

       

      

      

       

    (3)模块化

      

       JS模块化发展

    1、命名空间(几年前较为流行),详见浅谈JavaScript 命名空间
    2、Common.js诞生于node社区,应用于服务端,无法在客户端使用
    3、AMD、CMD、UMD是后来应用于浏览器的模块化规范
    4、ES6 module随着ES6普及,开始使用ES6模块化规范

      

    弊端:需要记住完整的路径名,然后NameSpace.type.method

      

       

       

      

       

       

       

       

       

       

       

    1、ES6模块导入使用import...from...,{}里存放导入的方法
    2、可以一起导入,也可以分开导入
    3、named as myName中的as为重命名
    4、import * as mylib from 'src/lib'
        把模块里定义导出的所有方法,绑定到mylib对象上
    5、import 'src/mylib'代表只是把文件模块加载进来,没有调用相关方法

      《1》暴露变量定义

        

       《2》暴露方法定义

        

       《3》暴露默认模块,可以是变量、函数、字符串、数字、匿名函数、类class等

        

      《4》选择性暴露方法、导出时重命名

        

      《5》导入后导出export...from...

        

      详见ES6模块化规范之ESM

       

    注意:webpack新版本3+开始,便已经支持了ES6规范,不再需要babel

      

      

      

       

      

      

      

      BEM风格代码案例:

      

       

      

    (3)环境准备

      

       命令行工具

      

      安装Webpack全局工具

      

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

      

       

       

       

       

  • 相关阅读:
    AJAX异步传输——以php文件传输为例
    js控制json生成菜单——自制菜单(一)
    vs2010中关于HTML控件与服务器控件分别和js函数混合使用的问题
    SQL数据库连接到服务器出错——无法连接到XXX
    PHP错误:Namespace declaration statement has to be the very first statement in the script
    【LeetCode】19. Remove Nth Node From End of List
    【LeetCode】14. Longest Common Prefix
    【LeetCode】38. Count and Say
    【LeetCode】242. Valid Anagram
    【LeetCode】387. First Unique Character in a String
  • 原文地址:https://www.cnblogs.com/fightjianxian/p/12397870.html
Copyright © 2011-2022 走看看