Vue嚐鮮快速、零配置的打包工具---parcel~

特性

  1. 快速打包
  2. 打包全部資源
  3. 自動轉換
  4. 代碼拆分
  5. 模塊熱替換
  6. 友好的錯誤記錄

如何工做

Parcel 將 資源 樹轉換成 包(bundles) 樹。許多其它的打包工具基本上是基於 JavaScript 資源,還有附加在其上的其它格式的資源。例如,在 JS 文件中內聯成字符串。 Parcel是對文件類型無感知的,它能按你所期待的方式那樣與任意類型的資源工做,且毋須配置。
  構建資源樹
  Parcel 接受單個入口資源做爲輸入,能夠是任意類型:JS、HTML、CSS、圖片文件等等。在 Parcel 中定義了許多不一樣的資源類型,它知道如何去處理特定的文件類型。資源會被解析,資源的依賴會被提取,資源會被轉換成最終編譯好的形態。此過程建立了一個資源樹。
  構建文件束樹
  一旦資源樹被構建好,資源會被放置在文件束樹中。首先一個入口資源會被建立成一個文件束,而後動態的 import() 會被建立成子文件束 ,這引起了代碼的拆分。當不一樣類型的文件資源被引入,兄弟文件束就會被建立。例如你在 JavaScript 中引入了 CSS 文件,那它會被放置在一個與 JavaScript 文件對應的兄弟文件束中。若是資源被多於一個文件束引用,它會被提高到文件束樹中最近的公共祖先中,這樣該資源就不會被屢次打包。
  打包
  在文件束樹被構建以後,每一個文件束都會被 packager 寫到一個特定文件類型的文件中。packagers 知道如何從每一個資源中將代碼合併起來,生成到最終被瀏覽器加載的文件中。   css

配置

  1. 初始化項目html

    npm install -g parcel
     mkdir xxx && cd xxx && npm init -y
    複製代碼
  2. 轉換vue

    Babelnpm

    npm install babel-preset-env --save-dev
    複製代碼

    根目錄配置.babelrcjson

    {
       "presets": ["env"]
     }
    複製代碼

    PostCSSpromise

    npm install postcss-modules autoprefixer --save-dev
    複製代碼

    根目錄配置.postcssrc瀏覽器

    {
       "modules": true,
       "plugins": {
         "autoprefixer": {
           "grid": true
         }
       }
     }
    複製代碼
  3. 支持vuebabel

    npm install parcel-plugin-vue --save-dev
    複製代碼
  4. 添加entryapp

    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)
       })
     }
    複製代碼
  5. 配置index.htmlasync

    <body>
       <div id="app"></div>
       <script src="入口文件"></script>
     </body>
    複製代碼
  6. 配置路由(代碼拆分--懶加載)

    {
         path: 'home',
         component: () =>import('../pages/home.vue')
     }
    複製代碼

    import()返回的是一個promise,因此也能夠用 async/await 語法,當你想在本地使用 async/await 語法,請引入 babel-polyfill

  7. 區分生產環境和開發環境,配置package.json.

    dev --- 開發環境

    build --- 生產環境

    "scripts": {
         "dev": "parcel index.html -p 3700",
         "build": "parcel build index.html"
       }
    複製代碼

大功告成

訪問http://localhost:3700/home

pJkErR.jpg
相關文章
相關標籤/搜索