webpack探究(一)-前世今生

新技术的出现,由于浏览器不能及时的兼容一些特性,需要一些额外的处理才能实现,
对已有项目进行代码合并和压缩,
解析项目中的拓展语言:less,sass,ts...
在开发过程中添加诸如自动更新,本地代理等功能
以上这些,如果手动配置的话非常繁琐,而webpack就是来干这些脏活累活的

自动化构建工具的发展历程:

    ant + YUI tool (基于java) ---> grunt/gulp(自动化构建工具) ---> rollup/parcel/webpack(模块打包工具)

const { src, dest } = require('gulp');
const uglify = require('gulp-uglify');
const rename = require('gulp-rename');

exports.default = function() {
  return src('src/*.js')
    // gulp-uglify 插件并不改变文件名
    .pipe(uglify())
    // 因此使用 gulp-rename 插件修改文件的扩展名
    .pipe(rename({ extname: '.min.js' }))
    .pipe(dest('output/'));
}

它改变了前端工程化

    nodejs es5 es6 (拨乱反正)

webpack的起源

    2012年3月10号诞生
    作者德国人Tobias(写java的),这人从事将java转为js的研究(GWT),里面有个特性叫 【code splitting】
    「code splitting」就是 Webpack 现在提供的主要功能
    

webpack的流行

    2014年,Instagram 的前端团队分享了他们对前端页面加载性能优化,其中很重要的一件就是用到的 Webpack的「code splitting」
    之后大家纷纷使用 Webpack,并给Webpack 贡献了无数的 plugins ,loader。
    plugins 也模糊了 module bundler 和 tasks 的界限,于是把前端 tasks,workflow工具 grunt gulp 取代了。

为什么历史选择了webpack?

    
    社区活跃度
    
    官方更新快
    
    配置灵活,扩展强
    
官网:https://www.webpackjs.com/concepts/

历史转折中的webpack

    webpack2
        tree shaking(借鉴的rollup)
        
    webpack3
        scope hoist(借鉴的rollup)
    
    webpack4
        0配置(借鉴的parcel) 支持WebAssembly


    webpack5
        持久化缓存
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值