Vue3.0cli項目搭建詳解

這篇文章主要介紹下vue-cli3.0項目搭建撩满,項目結(jié)構(gòu)和配置等整理一下,分享給大家。

一荣刑、介紹

Vue CLI 是一個基于 Vue.js 進行快速開發(fā)的完整系統(tǒng)。有三個組件:

CLI:@vue/cli全局安裝的 npm 包近范,提供了終端里的vue命令(如:vue create 嘶摊、vue serve 、vue ui 等命令)

CLI 服務(wù):@vue/cli-service是一個開發(fā)環(huán)境依賴评矩。構(gòu)建于?webpack?和?webpack-dev-server?之上(提供 如:serve叶堆、build和inspect命令)

CLI 插件:給Vue 項目提供可選功能的 npm 包 (如: Babel/TypeScript 轉(zhuǎn)譯、ESLint 集成斥杜、unit和 e2e測試 等)

二虱颗、安裝

1、全局安裝過舊版本的vue-cli(1.x 或 2.x)要先卸載它蔗喂,否則跳過此步:

1npm uninstall vue-cli -g//或者 yarn global remove vue-cli

2忘渔、Vue CLI 3需要 nodeJs?≥ 8.9 (官方推薦 8.11.0+,你可以使用?nvm?或?nvm-windows在同一臺電腦中管理多個 Node 版本)缰儿。

(2)下載安裝nodeJs畦粮,中文官方下載地址:http://nodejs.cn/download/?

3、安裝@vue/cli(Vue CLI 3的包名稱由vue-cli改成了@vue/cli)

1cnpm install -g @vue/cli //yarn global add @vue/cli

  vue -V? ?檢查vue版本號

三乖阵、使用

1宣赔、vue create 搭建新項目

(1)新建項目:

*官方提示:如果你在 Windows 上通過 minTTY 使用 Git Bash,交互提示符并不工作瞪浸,必須通過winpty vue.cmd create hello-world啟動這個命令

vue create //文件名 不支持駝峰(含大寫字母)

具體操作如下:

首先儒将,會提示你選擇一個preset(預(yù)設(shè)):

① 除最后兩個其他選項都是你此前保存的預(yù)設(shè)配置(如下圖第一個“ my-default”是我之前保存的預(yù)設(shè)配置对蒲,如今便可以直接用了):

如果沒有配置保存過钩蚊,則只有以下兩個選項:

② default(babel,eslint):默認設(shè)置(直接enter)非常適合快速創(chuàng)建一個新項目的原型蹈矮,沒有帶任何輔助功能的 npm包

③ Manually select features:自定義配置(按方向鍵 ↓)是我們所需要的面向生產(chǎn)的項目砰逻,提供可選功能的 npm 包

手動選擇需要添加的配置項:

1? Check the features neededforyour project: (Press to select, to toggle all, to invert selection) 2>( ) Babel//轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼泛鸟,從而在現(xiàn)有環(huán)境執(zhí)行诱渤。? 3( ) TypeScript// TypeScript是一個JavaScript(后綴.js)的超集(后綴.ts)包含并擴展了 JavaScript 的語法,需要被編譯輸出為 JavaScript在瀏覽器運行谈况,目前較少人再用 4( ) Progressive Web App (PWA) Support// 漸進式Web應(yīng)用程序 5( ) Router// vue-router(vue路由) 6( ) Vuex// vuex(vue的狀態(tài)管理模式) 7( ) CSS Pre-processors// CSS 預(yù)處理器(如:less勺美、sass) 8( ) Linter / Formatter// 代碼風(fēng)格檢查和格式化(如:ESlint) 9( ) Unit Testing// 單元測試(unit tests)10( ) E2E Testing// e2e(end to end) 測試

選擇完后直接enter递胧,然后會提示你選擇對應(yīng)功能的具體工具包,選擇自己擅長或者使用廣泛的(方便遇到問題時百度)赡茸,簡介如下:

?①是否使用history router:

Vue-Router 利用了瀏覽器自身的hash 模式和 history 模式的特性來實現(xiàn)前端路由(通過調(diào)用瀏覽器提供的接口)

② css預(yù)處理器

主要為css解決瀏覽器兼容缎脾、簡化CSS代碼?等問題

③ ESLint:

提供一個插件化的javascript代碼檢測工具,ESLint + Prettier //使用較多

④ 何時檢測:

⑤ 單元測試 :

? Pick a unit testing solution: (Use arrow keys)> Mocha + Chai//mocha靈活,只提供簡單的測試結(jié)構(gòu)占卧,如果需要其他功能需要添加其他庫/插件完成遗菠。必須在全局環(huán)境中安裝Jest//安裝配置簡單,容易上手华蜒。內(nèi)置Istanbul辙纬,可以查看到測試覆蓋率,相較于Mocha:配置簡潔叭喜、測試代碼簡潔贺拣、易于和babel集成、內(nèi)置豐富的expect

⑥ 如何存放配置 :

⑦ 是否保存本次配置(y:記錄本次配置捂蕴,然后需要你起個名; n:不記錄本次配置):

⑧ 搭建完成:


?2譬涡,項目結(jié)構(gòu)

精簡了很多,但還是和vue2.0有很多區(qū)別的啥辨,基本的用法變化不是特別大

① vuex(狀態(tài)管理):

  vue cli 2 中?:vuex是搭建完成后自己npm install的涡匀,并不包括在搭建過程中「戎可以看到vue cli 2的vuex默認文件夾(store)又包含了三個js文件:action(存放一些調(diào)用外部API接口的異步執(zhí)行的的方法陨瘩,然后commit mutations改變mutations 數(shù)據(jù))、index(初始化mutations 數(shù)據(jù)级乍,是store的出口)舌劳、mutations(處理數(shù)據(jù)邏輯的同步執(zhí)行的方法的集合,Vuex中store數(shù)據(jù)改變的唯一方法commit mutations)

  vue cli 3 中:vuex是包含在搭建過程供選擇的預(yù)設(shè)卡者。vue cli 3 中默認只用一個store.js代替了原來的store文件夾中的三個js文件。action客们、mutations崇决、state以及store 的 getters?的用法有很多

② router (路由):

  vue cli 2?:“ router/index.js ”

  vue cli 3:“router.js”(用法和做的事都一樣)

③ 去掉 static? 、 新增 public 文件夾

  vue cli 2?:static 是 webpack 默認存放靜態(tài)資源的文件夾底挫,打包時會直接復(fù)制一份到dist文件夾不會經(jīng)過 webpack 編譯

  vue cli 3?:摒棄?static?新增了 public 恒傻。vue cli 3 中“靜態(tài)資源”兩種處理方式:

  經(jīng)webpack 處理:在 JavaScript 被導(dǎo)入或在 template/CSS 中通過“相對路徑”被引用的資源會被編譯并壓縮

不經(jīng)webpack 處理:放置在public目錄下或通過絕對路徑被引用的資源將會“直接被拷貝”一份,不做任何編譯壓縮處理

④ index.html :

vue cli 2?:“index.html?”

vue cli 3:“public/index.html ”此模板會被html-webpack-plugin?處理的

⑤ src/views:

vue cli 3?的 src文件夾 新增 views文件夾 用來存放 “頁面”建邓,區(qū)分?components(組件)

⑥ 去掉 build(根據(jù)config中的配置來定義規(guī)則)盈厘、config(配置不同環(huán)境的參數(shù))文件夾 :

vue cli 3?中,這些配置 你可以通過 命令行參數(shù)官边、或vue.config.js(在根目錄 新建一個 vue.config.js 同名文件)里的devServer?字段配置開發(fā)服務(wù)器

⑦ babel.config.js:

配置Babel 沸手。Vue CLI 使用了 Babel 7 中的新配置格式babel.config.js外遇。和.babelrc或package.json中的babel字段不同,這個配置文件不會使用基于文件位置的方案契吉,而是會一致地運用到項目根目錄以下的所有文件跳仿,包括node_modules內(nèi)部的依賴。官方推薦在 Vue CLI 項目中始終使用babel.config.js取代其它格式捐晶。

⑧ 根目錄的一些其他文件的改變:

之前所有的配置文件都在vue create 搭建時preset預(yù)設(shè) 或者 后期可以通過 命令參數(shù) 菲语、vue.config.js 中配置

根據(jù)需要在根目錄下新建 vue.config.js自行配置,eg:(簡單配置惑灵,更多配置詳情參見官網(wǎng):https://cli.vuejs.org/zh/config/

1module.exports = { 2baseUrl: '/',// 部署應(yīng)用時的根路徑(默認'/'),也可用相對路徑(存在使用限制) 3outputDir: 'dist',// 運行時生成的生產(chǎn)環(huán)境構(gòu)建文件的目錄(默認''dist''山上,構(gòu)建之前會被清除) 4assetsDir: '',//放置生成的靜態(tài)資源(s、css英支、img佩憾、fonts)的(相對于 outputDir 的)目錄(默認'') 5indexPath: 'index.html',//指定生成的 index.html 的輸出路徑(相對于 outputDir)也可以是一個絕對路徑。 6pages: {//pages 里配置的路徑和文件名在你的文檔目錄必須存在 否則啟動服務(wù)會報錯 7index: {//除了 entry 之外都是可選的 8entry: 'src/index/main.js',// page 的入口,每個“page”應(yīng)該有一個對應(yīng)的 JavaScript 入口文件 9template: 'public/index.html',// 模板來源10filename: 'index.html',// 在 dist/index.html 的輸出11title: 'Index Page',// 當使用 title 選項時,在 template 中使用:<title><%= htmlWebpackPlugin.options.title %></title>12chunks: ['chunk-vendors', 'chunk-common', 'index']// 在這個頁面中包含的塊潭辈,默認情況下會包含,提取出來的通用 chunk 和 vendor chunk13? ? },14subpage: 'src/subpage/main.js'//官方解釋:當使用只有入口的字符串格式時,模板會被推導(dǎo)為'public/subpage.html',若找不到就回退到'public/index.html',輸出文件名會被推導(dǎo)為'subpage.html'15? },16lintOnSave:true,// 是否在保存的時候檢查17productionSourceMap:true,// 生產(chǎn)環(huán)境是否生成 sourceMap 文件18? css: {19extract:true,// 是否使用css分離插件 ExtractTextPlugin20sourceMap:false,// 開啟 CSS source maps21loaderOptions: {},// css預(yù)設(shè)器配置項22modules:false// 啟用 CSS modules for all css / pre-processor files.23? },24devServer: {// 環(huán)境配置25host: 'localhost',26port: 8080,27https:false,28hotOnly:false,29open:true,//配置自動啟動瀏覽器30proxy: {// 配置多個代理(配置一個 proxy: 'http://localhost:4000' )31'/api': {32target: '',33ws:true,34changeOrigin:true35? ? ? },36'/foo': {37target: ''38? ? ? }39? ? }40? },41pluginOptions: {// 第三方插件配置42// ...43? }44};

vue-cli升級到3之后鸯屿,減少了很多的配置文件,將所有的配置項都濃縮到了vue.config.js這個文件中把敢,所以學(xué)懂并會用vue.config.js文件很重要寄摆。

這里有一篇關(guān)于vue-cli3的全面配置的文章供大家參考,https://segmentfault.com/a/1190000017008697

熱更新配置

在vue.config.js添加

1chainWebpack: config => {2// 修復(fù)HMR3config.resolve.symlinks(true);4},

修改css部分熱更新還需要注釋掉? ?//extract: true,

css: {

? ? //extract: true,// 是否使用css分離插件 ExtractTextPluginsourceMap:false,// 開啟 CSS source mapsloaderOptions: {},// css預(yù)設(shè)器配置項modules:false// 啟用 CSS modules for all css / pre-processor files.},

這樣修赞,熱更新配置就完成了婶恼!

3、vue ui 圖形化界面創(chuàng)建項目

vue ui

  這個就不多介紹了柏副,可視化界面創(chuàng)建新項目更直觀勾邦,也可以添加一些項目依賴,插件和配置割择。

文章就介紹到這里眷篇,希望能幫大家對于vue-cli3.0有更深的理解。


轉(zhuǎn)載于:https://www.cnblogs.com/coober/p/10875647.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荔泳,一起剝皮案震驚了整個濱河市蕉饼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌玛歌,老刑警劉巖昧港,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異支子,居然都是意外死亡创肥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叹侄,“玉大人巩搏,你說我怎么就攤上這事∪Ω啵” “怎么了塔猾?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長稽坤。 經(jīng)常有香客問我丈甸,道長,這世上最難降的妖魔是什么尿褪? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任睦擂,我火速辦了婚禮,結(jié)果婚禮上杖玲,老公的妹妹穿的比我還像新娘顿仇。我一直安慰自己,他們只是感情好摆马,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布臼闻。 她就那樣靜靜地躺著,像睡著了一般囤采。 火紅的嫁衣襯著肌膚如雪述呐。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天蕉毯,我揣著相機與錄音乓搬,去河邊找鬼。 笑死代虾,一個胖子當著我的面吹牛进肯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播棉磨,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼江掩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了乘瓤?” 一聲冷哼從身側(cè)響起环形,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎馅扣,沒想到半個月后斟赚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體着降,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡差油,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓄喇。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡发侵,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妆偏,到底是詐尸還是另有隱情刃鳄,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布钱骂,位于F島的核電站叔锐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏见秽。R本人自食惡果不足惜愉烙,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望解取。 院中可真熱鬧步责,春花似錦、人聲如沸禀苦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽振乏。三九已至蔗包,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昆码,已是汗流浹背气忠。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赋咽,地道東北人旧噪。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像脓匿,于是被迫代替她去往敵國和親淘钟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359