詳解Vue快速零配置的打包工具——parcel
本文介紹了Vue快速零配置的打包工具——parcel,分享給大家,具體如下:
特性
- 快速打包
- 打包所有資源
- 自動(dòng)轉(zhuǎn)換
- 代碼拆分
- 模塊熱替換
- 友好的錯(cuò)誤記錄
如何工作
Parcel 將 資源 樹轉(zhuǎn)換成 包(bundles) 樹。許多其它的打包工具基本上是基于 JavaScript 資源,還有附加在其上的其它格式的資源。例如,在 JS 文件中內(nèi)聯(lián)成字符串。 Parcel是對文件類型無感知的,它能按你所期待的方式那樣與任意類型的資源工作,且毋須配置。
構(gòu)建資源樹
Parcel 接受單個(gè)入口資源作為輸入,可以是任意類型:JS、HTML、CSS、圖片文件等等。在 Parcel 中定義了許多不同的資源類型,它知道如何去處理特定的文件類型。資源會(huì)被解析,資源的依賴會(huì)被提取,資源會(huì)被轉(zhuǎn)換成最終編譯好的形態(tài)。此過程創(chuàng)建了一個(gè)資源樹。
構(gòu)建文件束樹
一旦資源樹被構(gòu)建好,資源會(huì)被放置在文件束樹中。首先一個(gè)入口資源會(huì)被創(chuàng)建成一個(gè)文件束,然后動(dòng)態(tài)的 import() 會(huì)被創(chuàng)建成子文件束 ,這引發(fā)了代碼的拆分。當(dāng)不同類型的文件資源被引入,兄弟文件束就會(huì)被創(chuàng)建。例如你在 JavaScript 中引入了 CSS 文件,那它會(huì)被放置在一個(gè)與 JavaScript 文件對應(yīng)的兄弟文件束中。如果資源被多于一個(gè)文件束引用,它會(huì)被提升到文件束樹中最近的公共祖先中,這樣該資源就不會(huì)被多次打包。
打包
在文件束樹被構(gòu)建之后,每個(gè)文件束都會(huì)被 packager 寫到一個(gè)特定文件類型的文件中。packagers 知道如何從每個(gè)資源中將代碼合并起來,生成到最終被瀏覽器加載的文件中。
配置
初始化項(xiàng)目
npm install -g parcel mkdir xxx && cd xxx && npm init -y
轉(zhuǎn)換
Babel
npm install babel-preset-env --save-dev
根目錄配置.babelrc
{ "presets": ["env"] }
PostCSS
npm install postcss-modules autoprefixer --save-dev
根目錄配置.postcssrc
{ "modules": true, "plugins": { "autoprefixer": { "grid": true } } }
支持vue
npm install parcel-plugin-vue --save-dev
添加entry
import App from './App.vue' import router from './router/index.js' import './assets/js/rem.js' window.onload = () => { const vm = new Vue({ el: '#app', router, render: h => h(App) }) }
配置index.html
<body> <div id="app"></div> <script src="入口文件"></script> </body>
配置路由(代碼拆分--懶加載)
{ path: 'home', component: () =>import('../pages/home.vue') }
import()返回的是一個(gè)promise,所以也可以用 async/await 語法,當(dāng)你想在本地使用 async/await 語法,請引入 babel-polyfill
區(qū)分生產(chǎn)環(huán)境和開發(fā)環(huán)境,配置package.json.
dev --- 開發(fā)環(huán)境
build --- 生產(chǎn)環(huán)境
"scripts": { "dev": "parcel index.html -p 3700", "build": "parcel build index.html" }
大功告成
訪問http://localhost:3700/home
此demo是vue + parcel + grid +stylus完成 : parcel-vue
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue 使用beforeEach實(shí)現(xiàn)登錄狀態(tài)檢查功能
今天小編就為大家分享一篇Vue 使用beforeEach實(shí)現(xiàn)登錄狀態(tài)檢查功能,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10Vue 第三方字體圖標(biāo)引入 Font Awesome的方法
今天小編就為大家分享一篇Vue 第三方字體圖標(biāo)引入 Font Awesome的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue路由傳參接收以及傳參對象為對象時(shí)的問題及解決
這篇文章主要介紹了vue路由傳參接收以及傳參對象為對象時(shí)的問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vue項(xiàng)目中使用fetch的實(shí)現(xiàn)方法
這篇文章主要介紹了vue項(xiàng)目中使用fetch的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04vue.js將unix時(shí)間戳轉(zhuǎn)換為自定義時(shí)間格式
這篇文章主要介紹了vue.js將unix時(shí)間戳轉(zhuǎn)換為自定義時(shí)間格式的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01electron實(shí)現(xiàn)打印功能支持靜默打印、無感打印
使用electron開發(fā)應(yīng)用遇到了打印小票的功能,實(shí)現(xiàn)途中還是幾經(jīng)波折,下面這篇文章主要給大家介紹了關(guān)于electron實(shí)現(xiàn)打印功能支持靜默打印、無感打印的相關(guān)資料,需要的朋友可以參考下2023-12-12