node_modules
.import()
聲明.yarn global add parcel-bundler
or with npm:html
npm install -g parcel-bundler
<html> <body> <script src="./index.js"></script> </body> </html>
parcel index.html
See parceljs.org for more documentation!node
基於一個合理大小的 app, 包含 1726 個模塊, 沒壓縮前是6.5M . 在一臺 2016的 MacBook Pro上測試.webpack
Bundler | Time |
---|---|
browserify | 22.98s |
webpack | 20.71s |
parcel | 9.98s |
parcel - with cache | 2.64s |
目前已經有許多應用很是普遍的打包工具,好比webpack 和 browserify. 因此爲何要使用parcel?答案是:爲了提升開發體驗。web
許多打包工具須要許多配置,下載許多插件, 僅僅爲了讓應用工做,就須要寫上超過500行的配置,這是十分常見的. 這些配置不只無聊並且耗時, 並且想要配置正確也不容易。 這每每不能使應用在性能上達到最優化。 parcel
很自豪地告訴你,咱們不須要任何配置: 僅僅須要指出你的入口文件,它就能幫你解決問題。shell
已有的打包器運行速度也很緩慢。 擁有許多文件和依賴的大型應用須要花費數分鐘打包, 在開發階段文件常常須要改變的狀況下,這尤爲痛苦。 文件watcher會幫助咱們從新打包,但初次啓動仍然十分緩慢。 parcel
在parallel中利用現代的多核處理器去編譯代碼。 這就在初次構建時節省了許多時間。 它也有一個文件系統緩存, 它能夠保存每一個文件的編譯結果,從而實現更快的後續啓動。npm
最後,現有的打包器是基於string loader/轉換的,其中轉換須要一個字符串,解析它,進行一些轉換,而後再次生成代碼。 一般這最終致使許多解析和代碼生成在單個文件上運行,這是低效的。 相反,parcel
的轉換工做在AST上,所以每一個文件只有一個解析,多個轉換和一個代碼生成。瀏覽器
parcel
transforms a tree of assets to a tree of bundles. Many other bundlers are fundamentally based around JavaScript assets, with other formats tacked on - for example, by default inlined as strings into JS files. parcel
is file-type agnostic - it will work with any type of assets the way you'd expect, with no configuration.緩存
parcel
將文件樹轉換爲打包樹。 許多其餘打包器基本上都是基於JavaScript文件,其餘類型的文件都是基於js文件的 - 例如,默認狀況下內嵌爲JS文件的字符串。 parcel
的文件類型不可知 - 它能夠按照您指望的方式處理任何類型的文件,而無需配置。服務器
一旦文件樹已經被構建完畢,文件就被放入打包樹中。 爲入口文件建立一個包,併爲動態import()
建立子包,這會致使代碼拆分的發生。 當導入不一樣類型的文件時,也會建立子包,例如,若是您從JavaScript導入CSS文件,則會將其綁定到相應的JavaScript的兄弟包中。 若是一個文件須要被多個包引用,它將被打包到最近的共同祖先,所以它不會被包含屢次。app
在打包樹被建立之後,每一個包都由特定於文件類型的包裝器寫入文件。 packagers 知道如何將每一個文件的代碼合併到由瀏覽器加載的最終文件中。