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
相关文章
相关标签/搜索