Parcel 生產(chǎn)環(huán)境(Production)

2023-03-15 15:23 更新

? 生產(chǎn)環(huán)境(Production)

當(dāng)需要打包你的應(yīng)用程序的時(shí)候,你可以使用 Parcel 的生產(chǎn)模式。

parcel build entry.js

最優(yōu)化

這將關(guān)閉監(jiān)聽(tīng)模式和熱模塊替換,所以它只會(huì)編譯一次。它還會(huì)開(kāi)啟 minifier 來(lái)減少輸出包文件的大小。Parcel 使用的 minifiers 有 JavaScript 的 terser ,CSS 的 cssnano 還有 HTML 的 htmlnano。

啟動(dòng)生產(chǎn)模式還會(huì)設(shè)置環(huán)境變量 NODE_ENV=production 。像 React 這種只用開(kāi)發(fā)調(diào)試功能的大型庫(kù),通過(guò)設(shè)置這個(gè)環(huán)境變量來(lái)禁用調(diào)試功能,從而構(gòu)建得更小更快。

若要利用一些僅開(kāi)發(fā)調(diào)試才有的特性,要確保terser's dead_code option是開(kāi)啟的狀態(tài)(默認(rèn)開(kāi)啟)并且將僅開(kāi)發(fā)調(diào)試代碼包裹在條件檢測(cè)中:

if (process.env.NODE_ENV === 'development') {
  // 或, `process.env.NODE_ENV !== 'production'`
  // 僅在開(kāi)發(fā)環(huán)境下運(yùn)行并將在生產(chǎn)環(huán)境下剔除.
}

文件命名策略

為了對(duì)你的 cdn 設(shè)置非常激進(jìn)的緩存規(guī)則,以獲得最佳性能和效率,Parcel 將會(huì)給大多數(shù) bundles 文件名添加 hash(根據(jù) bundle 包是否有可讀/可記憶的名稱(chēng),主要用于 SEO)

Parcel 在命名 bundles 文件時(shí),遵循以下表格(入口文件不會(huì)被 hash 處理)

Bundle TypeTypeContent hashed
AnyEntrypoint?
JavaScript<script>?
JavaScriptDynamic import?
JavaScriptService worker?
HTMLiframe?
HTMLanchor link?
Raw (Images, text files, ...)Import/Require/...?

文件哈希遵循以下命名模式:<directory name>-<hash>.<extension>

跨平臺(tái)陷阱

為了優(yōu)化生產(chǎn)環(huán)境的構(gòu)建性能,在運(yùn)行 build 命令的機(jī)器上 Parcel 將嘗試確定可用的 CPU 數(shù)量,以便相應(yīng)地分配工作。為此,Parcel 依賴(lài)于physical-cpu-count庫(kù)

請(qǐng)注意,此模塊假定您的系統(tǒng)中提供了lscpu程序

使用 CI

如果要將 Parcel 集成到持續(xù)集成系統(tǒng)中(例如 Travis 或 Circle CI)中,則可能需要將 Parcel 安裝為本地依賴(lài)項(xiàng)。

這里是說(shuō)明


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)