宣佈 Parcel:一個快速,零配置的 Web 應用打包工具 ?

? 宣佈 Parcel:一個快速,零配置的 Web 應用打包工具 ?

原文:? Announcing Parcel: A blazing fast, zero configuration web application bundler ?css

譯者:neal1991html

welcome to star my articles-translator , providing you advanced articles translation. Any suggestion, please issue or contact menode

LICENSE: MITwebpack

今天,我很是高興地宣佈 Parcel,一個快速,零配置的 Web 應用程序打包工具,我對於該工具的工做已經持續了幾個月。 去 Github上看看吧!git

clipboard.png

爲了解決我在 Browserify 和 Webpack 等現有模塊打包工具中遇到的兩個主要問題:性能配置經驗,我開始研究 Parcel。github

特性

  • ? 很是快的打包時間 - 多核編譯,以及文件系統緩存,這樣即便在從新啓動後也能快速重建。
  • ?對於 JS, CSS, HTML, 圖片以及文件資源以及其它支持開箱即用不須要安裝插件
  • ?在須要時使用 Babel,PostCSS 和 PostHTML 自動轉換模塊 - 甚至是node_modules。
  • ✂️ 零配置代碼分割使用動態import() 語句。
  • ?內置支持熱加載
  • ? 友好的錯誤日誌體驗 - 語法高亮顯示的代碼幀有助於查明問題。

性能

我被激發創建一個新的打包工具的第一個緣由是性能。 我已經在數千個模塊上作了一些至關大的應用程序,而且老是對現有打包工具的速度感到失望。 大型應用程序可能須要幾分鐘才能完成,這在開發過程當中尤爲使人沮喪web

許多打包工具專一於快速增量從新構建性能,這是很好的。 可是,最初的構建性能對於開發和生產/ CI 構建也很是重要。緩存

Parcel 經過使用工做進程並行編譯代碼,利用現代多核處理器解決了這個問題。 這致使了初始構建的巨大加速。 它還有一個文件系統緩存,能夠保存每一個文件的編譯結果,以便更快的後續啓動。babel

clipboard.png

零配置體驗

我創建Parcel的第二個緣由是幫助解決管理配置的痛苦。大多數其它打包工具都是圍繞着配置文件以及大量的插件創建起來的,爲了使事情順利進行,看到 500 行以上的應用程序配置並不罕見。架構

這種配置不只繁瑣耗時,並且很難正確使用,而且必須針對每一個應用程序進行復制。一般狀況下,這可能致使次優化的應用程序轉到到生產。

Parcel 被設計爲零配置:只需將它指向你的應用程序的入口點,它就能正確工做。 Parcel 支持 JS,CSS,HTML,圖片,文件資源等等 - 不須要任何插件。

Parcel 的零配置體驗也涉及到文件格式。當 Parcel 檢測到 .babelrc,.postcssrc 等時,也會自動應用像 Babel,PostCSS 和 PostHTML 這樣的轉換。這甚至適用於僅用於該模塊的 node_modules 中的第三方代碼,所以應用程序做者不須要知道如何構建他們導入的每一個模塊,而且構建不會減慢沒必要要地在每一個文件上運行 Babel。

最後,還支持代碼分割和熱模塊從新加載等高級打包功能。在生產模式下,Parcel 自動啓用縮小,將來還會進行其餘優化,如 tree-shaking。

將來架構

啓動一個新項目的一個好處是,我可以爲 Parcel 設計一個更加現代化的架構,這個架構更加可擴展,更靈活,同時無需用戶配置,並支持代碼拆分熱加載等高級功能。

大多數打包工具主要關注 JavaScript,並支持其餘格式。例如,默認狀況下,其餘文件類型一般會內嵌到JavaScript 文件中,並使用額外的插件和 hack 將其再次提取到單獨的文件中。

在 Parcel 中,任何類型的文件均可以成爲一等公民。添加表明輸入文件的新資源類型和將相似類型的資源組合到輸出文件中的打包工具很容易。

例如,分析和生成 CSS 代碼的 CSS 資源類型和將 CSS 資源組合成最終打包的 CSS Packager。 JS,HTML 等存在相似的類型。這樣,Parcel 徹底是文件類型無關的。

你能夠閱讀更多關於Parcel 如何在網站上工做的信息。

試試把

Parcel 剛剛開始,但許多應用程序已經開箱即用而且零配置! 因此試試看吧 - 刪除你的webpack/browserify配置,卸載這些插件,而後嘗試Parcel。?

歡迎向我反饋! 你能夠在Twitter上找到我@devongovett

相關文章
相關標籤/搜索