您好,登錄后才能下訂單哦!
本文介紹了Vue快速零配置的打包工具——parcel,分享給大家,具體如下:
特性
如何工作
Parcel 將 資源 樹轉換成 包(bundles) 樹。許多其它的打包工具基本上是基于 JavaScript 資源,還有附加在其上的其它格式的資源。例如,在 JS 文件中內聯成字符串。 Parcel是對文件類型無感知的,它能按你所期待的方式那樣與任意類型的資源工作,且毋須配置。
構建資源樹
Parcel 接受單個入口資源作為輸入,可以是任意類型:JS、HTML、CSS、圖片文件等等。在 Parcel 中定義了許多不同的資源類型,它知道如何去處理特定的文件類型。資源會被解析,資源的依賴會被提取,資源會被轉換成最終編譯好的形態。此過程創建了一個資源樹。
構建文件束樹
一旦資源樹被構建好,資源會被放置在文件束樹中。首先一個入口資源會被創建成一個文件束,然后動態的 import() 會被創建成子文件束 ,這引發了代碼的拆分。當不同類型的文件資源被引入,兄弟文件束就會被創建。例如你在 JavaScript 中引入了 CSS 文件,那它會被放置在一個與 JavaScript 文件對應的兄弟文件束中。如果資源被多于一個文件束引用,它會被提升到文件束樹中最近的公共祖先中,這樣該資源就不會被多次打包。
打包
在文件束樹被構建之后,每個文件束都會被 packager 寫到一個特定文件類型的文件中。packagers 知道如何從每個資源中將代碼合并起來,生成到最終被瀏覽器加載的文件中。
配置
初始化項目
npm install -g parcel mkdir xxx && cd xxx && npm init -y
轉換
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()返回的是一個promise,所以也可以用 async/await 語法,當你想在本地使用 async/await 語法,請引入 babel-polyfill
區分生產環境和開發環境,配置package.json.
dev --- 開發環境
build --- 生產環境
"scripts": { "dev": "parcel index.html -p 3700", "build": "parcel build index.html" }
大功告成
訪問http://localhost:3700/home
此demo是vue + parcel + grid +stylus完成 : parcel-vue
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。