前端打包你應該用哪些

打包工具

我們在開發的過程中,不可避免的出現一些需要多專案同步的問題。

像公司向的內部元件庫,公司向的通用

CSS

樣式,以便於多專案樣式統一。

以及我們在開發過程中,常用的一些函式,避免採用複製貼上的方式呼叫,否則可能會出現一個函數出現問題,多個專案多需要更新,且容易遺漏的問題。

前端打包你應該用哪些

且我們自身的業務專案,如

Vue

React

單頁面應用,也需要打包工具,但由於各個框架幫我們封裝了打包,我們便對這方面的問題關心的更少了。

所以我們就需要一個專用的打包工具,以便於我們更好的打包。而這篇文章的目的是幫助大家認識各個打包工具,且總結他們的優缺點。

常見的前端打包工具有哪些?

webpack

parcel

rollup

gulp

程式碼構建後的輸出格式有哪些?

amd - AMD

cjs -CommonJS

es - ES6 modules

umd - UMD

system - SystemJS loader

不同格式:

node環境: cjs

瀏覽器環境: iife

兩者兼具: umd

逐個分析

webpack

官網:

webpack。docschina。org/

特點:

模組化載入器兼打包工具

優點:

通用模組打包載入器,為移動端大型 SPA 應用而生

一切皆模組的特點適合單頁面應用開發

可以打包一切資源,適配各種模組系統

文件詳細

所有資源打包在一起能明顯減少瀏覽器訪問頁面時的資源請求數量

這個優點可能會隨著

HTTP/2

的流行而變得不那麼突出,因為

HTTP/2

的多路複用可以有效解決客戶端並行請求時的瓶頸問題。

缺點:

有大量

新概念

api

不適合多頁應用開發

靈活度高但同時配置很繁瑣複雜

parcel

打包速度:

優點:

可以透過

HTML

作為入口檔案

中文文件友好

打包速度快

缺點:

用的人少,容易有一些找解決方案較麻煩的坑,不適合用於生產環境,可以做一些

demo

gulp

特點:

基於流的自動化構建工具

優點:

適合多頁面開發

易學

易用

介面優雅(

5

api

缺點:

單頁面應用乏力

Vue

單檔案元件,使用

gulp

處理就會很困難,而

webpack

一個

loader

就能輕鬆搞定

rollup

特點:

Rollup

是一個

JavaScript

模組打包器,可以將小塊程式碼編譯成大塊複雜的程式碼,例如

library

或應用程式。

Webpack

偏向於應用打包的定位不同,

rollup。js

更專注於

Javascript

類庫打包

優點:

我們熟知的諸多框架都是透過

rollupjs

進行打包。

taro-ui

react

vue

如:

tree shaking

靜態分析,只打包用到的程式碼

支援

iife

輸出格式(程式碼執行速度快)

適合構建

lib

缺點:

不適合構建應用

我們在日常線上業務程式碼中,或多或少需要一些靜態資源包,因此還是

webpack

合適。 打包靜態資源時,可以引出去,讓使用者按需引用。

最後

市面上主流的前端打包工具大體上就是這些,大家可以根據自己的需要選擇不同的打包工具。