如何新建一個(gè)最最簡(jiǎn)單小巧的vue項(xiàng)目

在傳統(tǒng)的實(shí)踐中,當(dāng)我們要?jiǎng)?chuàng)建一個(gè)vue項(xiàng)目時(shí),往往需要自己配置webpack, eslint, babel, 各種loader等等一大堆東西,耗費(fèi)很多時(shí)間。后來(lái),vue-cli出現(xiàn),讓我們創(chuàng)建項(xiàng)目簡(jiǎn)單了很多,只需一條命令,選擇一些配置,便自動(dòng)生成一個(gè)功能齊全的項(xiàng)目。然而,用vue-cli創(chuàng)建的項(xiàng)目,哪怕把不需要的東西都去掉勾選,最后生成的項(xiàng)目還是顯得臃腫復(fù)雜(本地安裝了依賴,體積超過(guò)了70MB,編譯速度慢,最后dist里的東西體積也大)。
作為一個(gè)有潔癖的程序員,肯定不會(huì)在這里止步,還要繼續(xù)優(yōu)化項(xiàng)目讓他更輕更小更快。如何做到呢?如下是我總結(jié)的最小項(xiàng)目原則:

  • 使用CDN的庫(kù)而非作為項(xiàng)目依賴參與編譯(減小項(xiàng)目體積和生成代碼體積,提升編譯和頁(yè)面打開(kāi)速度)
  • 使用全局依賴而非本地依賴(減小項(xiàng)目體積,避免依賴重復(fù)下載和儲(chǔ)存)
  • 對(duì)于初學(xué)者及小型項(xiàng)目,可以避免使用babel, prettier, eslint等增加復(fù)雜度的工具
  • 使用pug, stylus等預(yù)編譯語(yǔ)言(簡(jiǎn)化代碼,減少行數(shù),提升復(fù)用)

應(yīng)用這些原則,來(lái)創(chuàng)建一個(gè)最簡(jiǎn)單的項(xiàng)目:

  1. 安裝全局依賴:yarn global add @vue/cli @vue/cli-service-global。若使用pug可以加裝pug pug-plain-loader
  2. 創(chuàng)建App.vue,內(nèi)容舉例:
<template lang="pug">
    h1 Hello Vue!
</template>

這時(shí)我們已經(jīng)可以通過(guò)vue serve、vue build來(lái)開(kāi)發(fā)和編譯了,但是還需優(yōu)化

  1. 創(chuàng)建vue.config.js,內(nèi)容為:
module.exports = {
    publicPath: './',
    configureWebpack: {
        externals: {
            vue: 'Vue'
        }
    }
}

這里我把publicPath設(shè)成./是為了編譯后的文件也能靜態(tài)地打開(kāi)查看,不是必須的。
關(guān)鍵點(diǎn)是把webpack配置加一條使用外部(CDN)的全局Vue,這樣我們的項(xiàng)目編譯就不需要處理vue依賴了,只要編譯項(xiàng)目本身的源代碼。這時(shí)我們?cè)賵?zhí)行vue build會(huì)發(fā)現(xiàn)速度快了很多,編譯后代碼體積十分小巧。

  1. 我們需要在html里從CDN引入vue,否則項(xiàng)目無(wú)法運(yùn)行。但是項(xiàng)目沒(méi)有html文件,所以我們需要?jiǎng)?chuàng)建public文件夾,然后在里面創(chuàng)建index.html替換掉默認(rèn)的html模版,內(nèi)容如下:
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <script src='https://unpkg.com/vue@2.6.12/dist/vue.runtime.min.js'></script>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

這樣一個(gè)最簡(jiǎn)單小巧的vue項(xiàng)目就創(chuàng)建完成了,僅僅包含3個(gè)文件,23行代碼,項(xiàng)目總大小不過(guò)500B,相比之下vue-cli創(chuàng)建的項(xiàng)目動(dòng)輒70多MB,速度也慢得多。你也可以將這個(gè)簡(jiǎn)單的3個(gè)文件的項(xiàng)目保存成一個(gè)模版來(lái)使用,每次創(chuàng)建新項(xiàng)目只需復(fù)制粘貼,豈不快哉。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容