飄刃,是前兩天才首次公開發布的輕量級 Vue 專案前端工程構建工具,使用 Rollup 打包。
以下是官方的對比
飄刃 VS Vue-CLI
對比環境 華為榮耀 MagicBook Windows 10 家庭版 i5 8G 64位 聯通4G熱點 30多個元件的小型 Vue 專案
飄刃 | Vue-CLI | |
---|---|---|
工具版本 | piaoren@0.1.1 | @vue/cli@3.6.3 |
依賴包數 | 487 | 689 |
安裝命令 | npm i -g piaoren | npm i -g @vue/cli |
安裝時間 | 18s | 1m 42s |
支援編碼 | Pug Sass ES6+ | Pug Sass Less Stylus ES6+ TypeScript |
建立專案 | pr1 init 只需要填專案名稱 | vue create/vue init 需要填選多項 |
啟動命令 | pr1 start | vue serve |
啟動時間 | 2s 與專案內容多少無關 | 6.8s 專案內容多少決定 |
熱更響應 | 支援更新 css 和重新整理頁面 兩種方式,不支援 js 更新 更新 js 需要重新整理頁面 響應速度 立即 |
支援 css 和 js 更新,vue 元件更新 有點雞肋,很大概率需要手動更新 才能看到預期效果,每次變化都需 要編譯,響應速度 稍慢 |
打包工具 | Rollup | Webpack |
打包時間 | 5s 專案內容多少決定 | 10s 專案內容多少決定 |
靜態資源 | 所有資源路徑在任何地方 都固定相對於入口檔案 |
少於4k的圖片會被轉為 base64 儲存在css檔案裡 |
多頁應用 | 無需配置 | 需要配置 pages |
外掛支援 | Rollup 外掛規範 | Webpack 外掛規範 |
單元測試 | 暫不支援 | 可選 |
總結:飄刃安裝時間、啟動速度、響應速度、打包時間都優於 Vue-CLI,但是配置方面不及 Vue-CLI 豐富。中小型無需配置的專案選擇飄刃,大中型需要多方面資源配合的專案選擇 Vue-CLI。
官方快速上手操作
npm i -g piaoren
複製程式碼
把飄刃安裝到全域性,任意目錄都可以執行飄刃的命令 pr1
pr1 init
? Project name: # 專案名稱至少兩個字元,由大小寫字母、中劃線、下劃線,及數字組成,數字不能為首字元
? Project description: # 可不填
複製程式碼
將會自動生成專案名稱命名的資料夾,包含若干工程檔案
進入工程目錄,執行以下命令開啟開發模式
npm run dev
複製程式碼
- 修改 src/main.js ,新增 Layout 元件
// main.js
import Vue from 'vue/dist/vue.esm.browser.js'
import Layout from './pages/Layout.vue'
// eslint-disable-next-line no-new
new Vue({
el: '#app',
components: {
Layout
},
template: '<Layout/>'
})
複製程式碼
- 建立 src/pages 目錄,並新增 src/pages/Layout.vue 檔案
<!-- pages/Layout.vue -->
<template lang="pug">
div
div.top
input(v-model="text")
button(@click="submit") 新增
ul
Item(v-for="(i, k) in items" :name="i" :key="k")
</template>
<script>
import Item from './Item.js'
export default {
components: {
Item
},
data () {
return {
text: '',
items: []
}
},
methods: {
submit () {
this.items.push(this.text)
this.text = ''
}
}
}
</script>
<style lang="sass" scoped>
$bg: #ccc;
.top {
padding: 20px;
background: $bg;
}
</style>
複製程式碼
- 建立 src/pages/Item.js
// pages/Item.js
import html from './Item.html'
export default {
template: html,
props: {
name: String
}
}
複製程式碼
- 建立 src/pages/Item.html
<!-- pages/Item.html -->
<li class="item">{{ name }}</li>
<style scoped>
.item {
background: #eee;
}
</style>
複製程式碼
在瀏覽器訪問 http://localhost:8686/
開發完成後,使用以下命令打包
npm run build
複製程式碼
打包完成後可在 dist 目錄雙擊 index.html 到瀏覽器訪問,如果專案包含 ajax 請求,file:// 協議檔案無法跨域,可以在 dist 目錄執行 pr1 start 8080 開啟飄刃服務,在瀏覽器訪問 http://localhost:8080/
歡迎嘗試飄刃,如有什麼疑問,極歡迎留言評論