Day29:【技术篇】初探打包工具的存在?

一、前言

  先前有写过两篇关於 Webpack 的文章(文章1文章2),回顾起自己学习到 Webpack 是在培训营课程尾声时期,那时候还蒙蒙懂懂的,只知道很基本的用法,但不清楚实际深入运作原理,所以写了前述两篇。

  但大家有想过为何会有像是 Webpack 之类的打包工具诞生吗?他的存在有什麽必要性呢?

二、打包工具的缘起

1. 前端工程化

  自从 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 设定,可以解决一些基本需求。

  但後续开发过程,大部分重复繁杂的步骤,就需要工具为我们带来工程化的方式,加速开发的流程。

2. 打包工具的选择

  除了较常听见的 Webpack,其实还有以下几种打包工具可供选择:

项次 名称 备注
1 Grunt 比 Webpack 早发行,针对每个插件需分别设定。
2 Backpack 专注在 Node.js 後端专案
3 Parcel 好上手、无须设定便能直接使用。

三、打包工具的用途

1. 转译

  在使用前端框架编写程序时,因为一般的浏览器只能听解读基础的 HTML、CSS、JavaScript,中间必须经过转换的步骤,就称为转译。

  开发者撰写出的程序码,会透过打包工具力呼叫 Bable 套件,逐步将之转译成浏览器能解读的内容,

2. 优化程序

  开发者可随着程序码开发需求,设定相对应的 Webpack 插件(如:minify、uglify、chunk等),就能套用各个插件带来的优化功能至应用程序上。

3. 加速开发

  打包工具的套件真的很多样且实用,以下简列几种举例:

项次 套件名称 用途
1 Webpack Spritesmith 可完成图档合并
2 Webpack 内建的 Hot Reload 可侦测并仅更新新修改到的内容

四、结论与自我鼓励

  今日文章其实只是稍微提到打包工具之缘起与主要用途,文章内容是自己於下班时间研究书籍与网路资源整理出来,若有错误或不详尽之处,再请各位前辈指导。

  如果想知道的更深入,推荐可以看「从0到Webpack」的「写在 Webpack 之前」这个章节,其他前端更深入常听到的专有名词也可以看「前端三十」这本,相信会获益不少!


本文同步发布於我的个人网站 Annie Code Life


<<:  成为工具人应有的工具包-27 ShellMenuView

>>:  Day 27: Behavioral patterns - Template Method

【CSS】【Bootstrap】关於order

【前言】 本系列为个人前端学习之路的学习笔记,在过往的学习过程中累积了很多笔记,如今想藉着IT邦帮忙...

[第十三只羊] 迷雾森林舞会VI devise登入

天亮了 昨晚是平安夜 关於迷雾森林故事 焦虑抑制剂 10号:哈罗大家好,我是海马诚实小君,其实原本一...

Day 5 阿里云架设网站 - 思路与规划

开始前的构思: 在这次动手做实验前,试着构思了一个透过云端提供的工具让服务持续演进的想法,左思右想考...

chia币挖矿优化解决方案?公有云可以这样解决!

Chia币掀起币圈热潮,SSD硬盘供不应求,其价格突增好几倍,那是因为挖矿过程很耗硬盘的存储空间,但...

[Day14] 永丰shioaji API,期货篇

今天先测试一下永丰期货部分的api,再看看接下来可以做什麽。首先是之前抓股价k棒的函数,因为现在要抓...