🚀 打包超快速
Parcel 使用 worker 來進行多核編譯,再加上檔案系統快取,即便重啟後也能快速編譯。
📦 打包你所有的資源
Parcel 原生支援 JS、CSS、HTML 及一般檔案⋯等等,不需額外安裝外掛。
🐠 自動轉換
必要時程式會使用 Babel、PostCSS 或 PostHTML 自動轉換,甚至連 node_modules
也行。
✂️ 免設定的程式碼分離
使用動態的 import()
語法,Parcel 會將輸出的 bundle 分離,讓初始載入時只會載入必要的部分。
🔥 模組熱替換
Parcel 會在你開發時自動更新瀏覽器中的模組,無須額外設定。
🚨 友善的錯誤紀錄
當錯誤發生時,Parcel 會顯示高亮程式碼,協助你發現問題。
Hello World
Parcel 會從你的入口 HTML 開始,逐一尋找相依套件並建構出整個 app。
✏️ index.html
<html>
<body>
<script src="./index.js"></script>
</body>
</html>
🛠 index.js
// 引入另一個元件
import main from './main';
main();
🛠 main.js
// 引入一個 CSS 模組
import classes from './main.css';
export default () => {
console.log(classes.main);
};
💅 main.css
.main {
/* 引用一張圖檔 */
background: url('./images/background.png');
color: red;
}
執行 parcel index.html
後即會啟動開發伺服器。引入 Javascript、CSS 和影像檔什麼的,這麼簡單就搞定了 👌
效能比較
打包工具 | 耗時 |
---|---|
browserify | 22.98 秒 |
webpack | 20.71 秒 |
parcel | 9.98 秒 |
parcel - 啟用快取 | 2.64 秒 |
本測試使用了一個大小合理的 app,包含 1726 個模組,共 6.5M 未經壓縮,並執行於 2016 的四核心 MacBook Pro。