當需要打包你的應用程序的時候,你可以使用 Parcel 的生產(chǎn)模式。
parcel build entry.js
這將關閉監(jiān)聽模式和熱模塊替換,所以它只會編譯一次。它還會開啟 minifier 來減少輸出包文件的大小。Parcel 使用的 minifiers 有 JavaScript 的 terser ,CSS 的 cssnano 還有 HTML 的 htmlnano。
啟動生產(chǎn)模式還會設置環(huán)境變量 NODE_ENV=production 。像 React 這種只用開發(fā)調(diào)試功能的大型庫,通過設置這個環(huán)境變量來禁用調(diào)試功能,從而構建得更小更快。
若要利用一些僅開發(fā)調(diào)試才有的特性,要確保terser's dead_code option是開啟的狀態(tài)(默認開啟)并且將僅開發(fā)調(diào)試代碼包裹在條件檢測中:
if (process.env.NODE_ENV === 'development') {
// 或, `process.env.NODE_ENV !== 'production'`
// 僅在開發(fā)環(huán)境下運行并將在生產(chǎn)環(huán)境下剔除.
}
為了對你的 cdn 設置非常激進的緩存規(guī)則,以獲得最佳性能和效率,Parcel 將會給大多數(shù) bundles 文件名添加 hash(根據(jù) bundle 包是否有可讀/可記憶的名稱,主要用于 SEO)
Parcel 在命名 bundles 文件時,遵循以下表格(入口文件不會被 hash 處理)
Bundle Type | Type | Content hashed |
---|---|---|
Any | Entrypoint | ? |
JavaScript | <script> | ? |
JavaScript | Dynamic import | ? |
JavaScript | Service worker | ? |
HTML | iframe | ? |
HTML | anchor link | ? |
Raw (Images, text files, ...) | Import/Require/... | ? |
文件哈希遵循以下命名模式:<directory name>-<hash>.<extension>
為了優(yōu)化生產(chǎn)環(huán)境的構建性能,在運行 build 命令的機器上 Parcel 將嘗試確定可用的 CPU 數(shù)量,以便相應地分配工作。為此,Parcel 依賴于physical-cpu-count庫
請注意,此模塊假定您的系統(tǒng)中提供了lscpu程序
如果要將 Parcel 集成到持續(xù)集成系統(tǒng)中(例如 Travis 或 Circle CI)中,則可能需要將 Parcel 安裝為本地依賴項。
這里是說明
更多建議: