官網vue-cli :https://cli.vuejs.org/zh/guide/
vue 搭建項目
vue-cli 3.0:
1、全局安裝過舊版本的 vue-cli(1.x 或 2.x)要先解除安裝它,否則跳過此步:
npm uninstall vue-cli -g //或者 手動删除
注:Vue CLI 3需要 nodeJs ≥ 8.9 (官方推薦 8.11.0+)
2、安裝@vue/cli(Vue CLI 3的包名稱由 vue-cli 改成了 @vue/cli):
npm i @vue/cli -g (vue -V 檢查vue版本号)
快速建立項目
vue create 項目名 (檔案名支援駝峰(含大寫字母))
啟動
npm run serve
具體操作如下:
首先,會提示你選擇一個preset(預設):
① 除最後兩個,其他選項都是你此前儲存的預設配置(如下圖第一個“ my-default”是我之前儲存的預設配置,如今便可以直接用了):
如果沒有配置儲存過,則隻有以下兩個選項:
② default(babel,eslint):預設設定(直接enter)非常适合快速建立一個新項目的原型,沒有帶任何輔助功能的 npm包。
③ Manually select features:自定義配置(按方向鍵 ↓)是我們所需要的面向生産的項目,提供可選功能的 npm 包
手動選擇需要添加的配置項:
Vue CLI v4.2.3
? Please pick a preset: Manually select features
? Check the features needed for your project: (Press <space> to select, <a> to t
oggle all, <i> to invert selection)
>(*) Babel //轉碼器,可以将ES6代碼轉為ES5代碼,進而在現有環境執行。
( ) TypeScript //是JavaScript的超集字尾.ts 擴充了js文法。
( ) Progressive Web App (PWA) Support //漸進式Web應用程式
(*) Router // vue-router(vue路由)
(*) Vuex // vuex(vue的狀态管理模式)
(*) CSS Pre-processors // CSS 預處理器(如:less、sass)
() Linter / Formatter // 代碼風格檢查和格式化(如:ESlint)
( ) Unit Testing // 單元測試(unit tests)
( ) E2E Testing // e2e(end to end) 測試
選擇完後直接enter,然後會提示你選擇對應功能的具體工具包,選擇自己擅長或者使用廣泛的(友善遇到問題時百度),簡介如下:
①是否使用history router:
Vue-Router 利用了浏覽器自身的hash 模式和 history 模式的特性來實作前端路由(通過調用浏覽器提供的接口)
② css預處理器
主要為css解決浏覽器相容、簡化CSS代碼 等問題
③ ESLint:
提供一個插件化的javascript代碼檢測工具,ESLint + Prettier //使用較多
④ 何時檢測:
⑤ 單元測試 :
? Pick a unit testing solution: (Use arrow keys)
> Mocha + Chai //mocha靈活,隻提供簡單的測試結構,如果需要其他功能需要添加其他庫/插件完成。必須在全局環境中安裝
Jest //安裝配置簡單,容易上手。内置Istanbul,可以檢視到測試覆寫率,相較于Mocha:配置簡潔、測試代碼簡潔、易于和babel內建、内置豐富的expect
⑥ 如何存放配置 :
⑦ 是否儲存本次配置(y:記錄本次配置,然後需要你起個名; n:不記錄本次配置):
⑧ 搭建完成:
① vuex(狀态管理):
vue cli 2 中 :vuex是搭建完成後自己npm install的,并不包括在搭建過程中。可以看到vue cli 2的vuex預設檔案夾(store)又包含了三個js檔案:action(存放一些調用外部API接口的異步執行的的方法,然後commit mutations改變mutations 資料)、index(初始化mutations 資料,是store的出口)、mutations(處理資料邏輯的同步執行的方法的集合,Vuex中store資料改變的唯一方法commit mutations)
vue cli 3 中:vuex是包含在搭建過程供選擇的預設。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 預設存放靜态資源的檔案夾,打包時會直接複制一份到dist檔案夾不會經過 webpack 編譯
vue cli 3 :摒棄 static 新增了 public 。vue cli 3 中“靜态資源”兩種處理方式:
經webpack 處理:在 JavaScript 被導入或在 template/CSS 中通過“相對路徑”被引用的資源會被編譯并壓縮
不經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檔案夾 用來存放 “頁面”,區分 components(元件)
⑥ 去掉 build(根據config中的配置來定義規則)、config(配置不同環境的參數)檔案夾 :
vue cli 3 中,這些配置 你可以通過 指令行參數、或 vue.config.js (在根目錄 建立一個 vue.config.js 同名檔案)裡的 devServer 字段配置開發伺服器
⑦ babel.config.js:
配置Babel 。Vue CLI 使用了 Babel 7 中的新配置格式 babel.config.js。和 .babelrc 或 package.json 中的 babel 字段不同,這個配置檔案不會使用基于檔案位置的方案,而是會一緻地運用到項目根目錄以下的所有檔案,包括 node_modules 内部的依賴。官方推薦在 Vue CLI 項目中始終使用 babel.config.js 取代其它格式。
⑧ 根目錄的一些其他檔案的改變:
之前所有的配置檔案都在vue create 搭建時preset預設 或者 後期可以通過 指令參數 、 vue.config.js 中配置
根據需要在根目錄下建立 vue.config.js自行配置,eg:(簡單配置,更多配置詳情參見官網:https://cli.vuejs.org/zh/config/)
module.exports = {
baseUrl: '/',// 部署應用時的根路徑(預設'/'),也可用相對路徑(存在使用限制)
outputDir: 'dist',// 運作時生成的生産環境建構檔案的目錄(預設''dist'',建構之前會被清除)
assetsDir: '',//放置生成的靜态資源(s、css、img、fonts)的(相對于 outputDir 的)目錄(預設'')
indexPath: 'index.html',//指定生成的 index.html 的輸出路徑(相對于 outputDir)也可以是一個絕對路徑。
pages: {//pages 裡配置的路徑和檔案名在你的文檔目錄必須存在 否則啟動服務會報錯
index: {//除了 entry 之外都是可選的
entry: 'src/index/main.js',// page 的入口,每個“page”應該有一個對應的 JavaScript 入口檔案
template: 'public/index.html',// 模闆來源
filename: 'index.html',// 在 dist/index.html 的輸出
title: 'Index Page',// 當使用 title 選項時,在 template 中使用:<title><%= htmlWebpackPlugin.options.title %></title>
chunks: ['chunk-vendors', 'chunk-common', 'index'] // 在這個頁面中包含的塊,預設情況下會包含,提取出來的通用 chunk 和 vendor chunk
},
subpage: 'src/subpage/main.js'//官方解釋:當使用隻有入口的字元串格式時,模闆會被推導為'public/subpage.html',若找不到就回退到'public/index.html',輸出檔案名會被推導為'subpage.html'
},
lintOnSave: true,// 是否在儲存的時候檢查
productionSourceMap: true,// 生産環境是否生成 sourceMap 檔案
css: {
extract: true,// 是否使用css分離插件 ExtractTextPlugin
sourceMap: false,// 開啟 CSS source maps
loaderOptions: {},// css預設器配置項
modules: false// 啟用 CSS modules for all css / pre-processor files.
},
devServer: {// 環境配置
host: 'localhost',
port: 8080,
https: false,
hotOnly: false,
open: true, //配置自動啟動浏覽器
proxy: {// 配置多個代理(配置一個 proxy: 'http://localhost:4000' )
'/api': {
target: '<url>',
ws: true,
changeOrigin: true
},
'/foo': {
target: '<other_url>'
}
}
},
pluginOptions: {// 第三方插件配置
// ...
}
};
vue-cli更新到3之後,減少了很多的配置檔案,将所有的配置項都濃縮到了vue.config.js這個檔案中,是以學懂并會用vue.config.js檔案很重要。
這裡有一篇關于vue-cli3的全面配置的文章供大家參考,https://segmentfault.com/a/1190000017008697
熱更新配置
修改.vue檔案裡面的内容,頁面自動重新整理。
在vue.config.js添加
chainWebpack: config => {
// 修複HMR
config.resolve.symlinks(true);
},
修改css部分熱更新還需要注釋掉 //extract: true,
css: {
//extract: true,// 是否使用css分離插件 ExtractTextPlugin
sourceMap: false,// 開啟 CSS source maps
loaderOptions: {},// css預設器配置項
modules: false// 啟用 CSS modules for all css / pre-processor files.
},
這樣,熱更新配置就完成了!
3、vue ui 圖形化界面建立項目
vue ui
這個就不多介紹了,可視化界面建立新項目更直覺,也可以添加一些項目依賴,插件和配置。
啟動指令:
package.json 檔案中
"scripts": {
"serve": "vue-cli-service serve --open" // serve:自定義啟動名 (預設)
},
npm run serve
//
舊:
生産環境的建構配置(腳手架)
//全局安裝 vue-cli
cnpm install -g vue-cli
//建立一個基于webpack 模闆的新項目
vue init webpack my-name
? Project name webpc //項目名(Enter鍵預設)
? Project description //項目描述
? Author //作者
? Vue build standalone
? Install vue-router? Yes
? Use ESLint to lint your code? No
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
//安裝依賴,走你
cd my-name
cnpm install
npm run dev
國内加濾鏡 npm 前加 c ; cnpm