zoukankan      html  css  js  c++  java
  • webpack入门指南step01

    一、webpack是什么?

    web开发中常用到的静态资源主要有JavaScript、CSS、图片、Jade等文件,webpack中将静态资源文件称之为模块。webpack是一个模块打包工具(命令行工具),其可以兼容多种js书写规范,且可以处理模块间的依赖关系,具有更强大的js模块化的功能。 官方网站中用下图清晰的描述了webpack采用不同的loader加载不同的资源文件,打包生成多个js文件,也可以根据设置生成独立的图片、css文件等。 

    cmd-markdown-logo

    二、为什么使用 webpack?

    在以往的开发过程中,经常会遇到以下三种情况:

    1. 项目中资源多样性和依赖性 - js、css、png、less、jade等 为了方便开发,我们经常会使用不同的语法来编写文档,用less、sass、jade等会提高开发效率,但同时我们需要借助gulp或grunt来编写任务编译文件或对图片进行压缩等。
    2. js模块规范复杂化 - AMD、CommonJS、UMD、ES6等 requireJS主要用来处理AMD规范的js文件,若使用CommonJS规范的js库文件,需进行AMD规范的封装,才能正常使用。而browserify主要处理CommonJS规范的文件,其他规范也需要进行转化。近期ES6的兴起,前面两种打包工具已经不能满足我们的需求了。
    3. 开发与线上文件不一致性(打包压缩造成影响)

    webpack可以很好地解决上面的问题,它具有Grunt、Gulp对于静态资源自动化构建的能力,是一个出色的前端自动化构建工具模块化工具资源管理工具

    三、webpack 特性

    webpack具有requireJs和browserify的功能,但仍有很多自己的新特性:

    1.  CommonJS  AMD ES6的语法做了兼容
    2. jscss、图片等资源文件都支持打包
    3. 串联式模块加载器以及插件机制,让其具有更好的灵活性和扩展性,例如提供对CoffeeScriptES6的支持
    4. 有独立的配置文件webpack.config.js
    5. 可以将代码切割成不同的chunk,实现按需加载,降低了初始化时间
    6. 支持 SourceUrls  SourceMaps,易于调试
    7. 具有强大的Plugin接口,大多是内部插件,使用起来比较灵活
    8.webpack 使用异步 IO 并具有多级缓存。这使得 webpack 很快且在增量编译上更加快
  • 相关阅读:
    hihocoder #1407 : 后缀数组二·重复旋律2
    后缀数组基本问题QAQ
    hihocoder #1403 : 后缀数组一·重复旋律
    20170116小测233
    HDU 4779:Tower Defense
    BZOJ 2563: 阿狸和桃子的游戏
    Codeforces 460D. Little Victor and Set
    Codeforces 297C. Splitting the Uniqueness
    BZOJ 2565: 最长双回文串
    Manacher--雾窗寒对遥天暮,暮天遥对寒窗雾
  • 原文地址:https://www.cnblogs.com/yongshaoye/p/7269775.html
Copyright © 2011-2022 走看看