先前有写过两篇关於 Webpack 的文章(文章1、文章2),回顾起自己学习到 Webpack 是在培训营课程尾声时期,那时候还蒙蒙懂懂的,只知道很基本的用法,但不清楚实际深入运作原理,所以写了前述两篇。
但大家有想过为何会有像是 Webpack 之类的打包工具诞生吗?他的存在有什麽必要性呢?
自从 Node.js 发行後,套件管理工具 npm 诞生,即是工程化的起点。npm 提供了 script 的功能,可以将 shell script 封装起来供其他开发者使用。
{
"script":{
"dev": "node app.js",
"mock": "node index.js"
}
}
以上面这段程序码来解说,当开发者输入npm run dev
,就会执行node app.js
这行指令;相对地当开发者输入npm run mock
,就会执行node index.js
这行指令。这样简短的 script 设定,可以解决一些基本需求。
但後续开发过程,大部分重复繁杂的步骤,就需要工具为我们带来工程化的方式,加速开发的流程。
除了较常听见的 Webpack,其实还有以下几种打包工具可供选择:
项次 | 名称 | 备注 |
---|---|---|
1 | Grunt | 比 Webpack 早发行,针对每个插件需分别设定。 |
2 | Backpack | 专注在 Node.js 後端专案 |
3 | Parcel | 好上手、无须设定便能直接使用。 |
在使用前端框架编写程序时,因为一般的浏览器只能听解读基础的 HTML、CSS、JavaScript,中间必须经过转换的步骤,就称为转译。
开发者撰写出的程序码,会透过打包工具力呼叫 Bable 套件,逐步将之转译成浏览器能解读的内容,
开发者可随着程序码开发需求,设定相对应的 Webpack 插件(如:minify、uglify、chunk等),就能套用各个插件带来的优化功能至应用程序上。
打包工具的套件真的很多样且实用,以下简列几种举例:
项次 | 套件名称 | 用途 |
---|---|---|
1 | Webpack Spritesmith | 可完成图档合并 |
2 | Webpack 内建的 Hot Reload | 可侦测并仅更新新修改到的内容 |
今日文章其实只是稍微提到打包工具之缘起与主要用途,文章内容是自己於下班时间研究书籍与网路资源整理出来,若有错误或不详尽之处,再请各位前辈指导。
如果想知道的更深入,推荐可以看「从0到Webpack」的「写在 Webpack 之前」这个章节,其他前端更深入常听到的专有名词也可以看「前端三十」这本,相信会获益不少!
本文同步发布於我的个人网站 Annie Code Life
<<: 成为工具人应有的工具包-27 ShellMenuView
>>: Day 27: Behavioral patterns - Template Method
【前言】 本系列为个人前端学习之路的学习笔记,在过往的学习过程中累积了很多笔记,如今想藉着IT邦帮忙...
天亮了 昨晚是平安夜 关於迷雾森林故事 焦虑抑制剂 10号:哈罗大家好,我是海马诚实小君,其实原本一...
开始前的构思: 在这次动手做实验前,试着构思了一个透过云端提供的工具让服务持续演进的想法,左思右想考...
Chia币掀起币圈热潮,SSD硬盘供不应求,其价格突增好几倍,那是因为挖矿过程很耗硬盘的存储空间,但...
今天先测试一下永丰期货部分的api,再看看接下来可以做什麽。首先是之前抓股价k棒的函数,因为现在要抓...