使用 Vue.js 開發大型應用時,咱們須要考慮代碼目錄結構、項目構建和部署、熱加載、代碼單元測試等事情。若是每一個項目都要手動完成這些工做,那無疑效率是低下的,因此一般咱們會使用一些腳手架工具來幫助完成這些事情。在 Vue.js 生態中咱們可使用 vue-cli 腳手架工具來快速構建項目。
html
一、安裝
vue
vue-cli 是用 node 編寫的命令行工具,咱們須要進行全局安裝。打開命令行工具,輸入指令:node
$ npm install -g vue-cliwebpack
注意:請確保 node 版本爲 4.x、5.x 及以上
git
安裝完成之後,執行以下命令:github
$ vue --versionweb
二、基本使用vue-cli
生成項目模板的命令格式爲npm
$ vue init <template-name> <project-name>api
<template-name>:模板名,好比 webpack, simple, browserify
<project-name>: 本地文件夾名稱
咱們可使用 vue-cli 來快速生成一個基於 Webpack 構建的項目。打開命令行工具,輸入以下命令:
$ vue init webpack my-project
全部模板默認安裝的是 Vue 2.x 版本,若是須要安裝 1.x 版本,須要輸入以下指令:
$ vue init webpack#1.0 my-project
這裏先安裝1.0版本,並有一系列交互問題,贊成按 y,不一樣意按 n
安裝命令行給出的提示,咱們依次輸入以下指令:
$ cd my-project
$ cnpm install
安裝完畢之後會在對應的目錄下生成以下文件:
下面對上圖目錄作一個簡要的說明
如今啓動項目,輸入以下命令:
$ npm run dev
默認監聽的是 8080 端口
甚至連 Apche服務器都不須要本身啓動,在瀏覽器中輸入 http://localhost:8080,生成的頁面以下:
接下來咱們打開 src/components/Hello.vue,把數據中的 msg 改爲 「你好,世界!」
<script> export default { data () { return { // note: changing this line won't causes changes // with hot-reload because the reloaded component // preserves its current state and we are modifying // its initial state. msg: '你好,世界!' } } } </script>
從新刷新頁面:
三、模板
這裏對兩個命令作進一步拓展介紹:
3-一、init
init 命令用來基於指定模板生成項目結構。前面提到過的,template-name 爲模板名,project-name 爲要生成的目錄名
3-二、list
list 命令用於列出全部可用的模板,經過查詢 https://api.github.com/users/vuejs-templates/repos 這個API 接口能夠獲得全部列表。
命令行輸入指令:
$ vue list
前面提到,在執行 init 命令時能夠指定模板的名字。在默認狀況下,vue-cli 會根據所傳入的模板名字去 github 中查找模板。
vue-cli 的模板分爲 官方模板、自定義模板、本地模板
(1)、官方模板
上圖中就提供了 5種 官方模板:
browserify -- 擁有高級功能的 Browserify + vueify 用於 正式開發
browserify-simple -- 擁有基礎功能的 Browserify + vueify 用於 快速開發
simple -- 單個 HTML,用於開發最簡單的 Vue.js 應用
webpack -- 擁有高級功能的 Webpack + vue-loader 用於正式開發
webpack-simple -- 擁有基礎功能的 Webpack + vue-loader 用於快速開發
在這裏特別提一下 webpack,前面在安裝 webpack 模板時,有一個選擇項,是否使用 ESLint 來規範你的代碼
ESLint 對於平時不太注意代碼縮進的朋友多是一個噩耗,咱們簡單演示一下,打開 src 下的 App.vue,把代碼稍做修改
<template> <div id="app"> <h2>2017年來啦!</h2> <strong>`msg`</strong> </div> </template> <script> export default { data(){ return { msg:'好好學習 Vue.js!' } } } </script>
刷新頁面,提示了各類代碼縮進、空格 之類的錯誤
(2)、自定義模板
當官方模板不能知足需求時,咱們能夠 fork 官方模板按照本身的需求修改後,經過 vue-cli 命令生成基於本身模板的項目結構:
$ vue init username/repo my-project
(3)、本地模板
除了從 github 下載模板外,咱們還能夠從本地加載模板:
$ vue init ~/fs/path/to-custom-template my-project
四、推薦的工具包
vue-cli 內部使用了不少第三方 npm 包來幫助本身實現一些基礎功能,好比下面這些
4-一、commander
commander 是一個命令行接口的解決方案,它提供了一些接口方便咱們對命令行的命令作解析。
倉庫地址:https://github.com/tj/commander.js
4-二、download-git-repo
download-git-repo 用來將相應的 git 庫(Github、GitLab、Bitbucket)下載到指定的本地文件夾。
倉庫地址:https://github.com/flipxfx/download-git-repo
4-三、inquirer
inquirer 是一個常見的交互式命令行用戶頁面的集合,它能夠簡化如下流程:
提供錯誤反饋
詢問問題
解析輸入
驗證結果
倉庫地址: https://github.com/SBoudrias/Inquirer.js