2018年8月10號,vue-cli3.0面世css
@2.9.3的使用
1.下載vue-cli和安裝項目
cnpm i -g vue-cli#2.9.3html
vue init webpack my-app
前端
@3.0以上,目前beta版本的使用
1.下載vue-cli和安裝項目
npm install -g @vue/clivue
vue create <Project Name> //文件名 不支持駝峯(含大寫字母)node
全局安裝過舊版本的 vue-cli(1.x 或 2.x)要先卸載它,不然跳過此步:webpack
npm uninstall vue-cli -g //或者 yarn global remove vue-cli
web
Vue CLI 3.0與其餘的版本徹底不一樣,它經歷了重構,目的是:vue-cli
1.儘量減小現代前端工具在配置上的煩惱,尤爲是在開發者將多個工具混合使用時;npm
2.儘量在工具鏈中加入最佳實踐,並讓其成爲Vue應用程序的默認實踐。windows
Vue CLI的核心目標是爲基於webpack 4構建的預配置構建提供設置,目標是最大限度地減小開發人員配置的次數,因此Vue CLI 3對具備如下特色的項目都支持開箱即用:
預配置webpack功能,如模塊熱替換、代碼拆分、 搖樹優化(tree-shaking)、高效持久化緩存等;
經過Babel 7 + preset-env(Babel插件)對 ES2017進行轉換和基於使用狀況注入polyfill
支持PostCSS(默認啓用autoprefixer)和全部主要的CSS預處理器
Modern mode:並行發佈原生ES2017 +bundle和傳統bundle
多頁面模式:構建具備多個HTML / JS入口點的應用程序
構建目標:將Vue單文件組件構建成爲庫或原生Web組件(詳情以下)
能夠在建立新項目時混合選用多種集成:
TypeScript
PWA
Vue Router & Vuex
ESLint / TSLint / Prettier
用Jest或Mocha進行單元測試
用Cypress 或者 Nightwatch進行E2E 測試
vue-cli3 建立的時候並不會自動建立vue.config.js,由於這個是個可選項,因此通常都是須要修改webpack的時候纔會本身建立一個vue.config.js
再而後由於vue-cli3內部高度集成了webpack,通常來講使用者不須要再去知道weboack作了什麼,因此沒有暴露webpack的配置文件,但你依然能夠建立vue.config.js 去修改默認的webpack
*一開始只有兩個選項: default (默認配置)和 Manually select features (手動配置)
默認配置只有 babel 和 eslint 其餘的都要本身另外再配置,因此咱們選第二項手動配置。
在每次選擇手動配置以後,會詢問你是否保存配置,也就是圖片中的 koro 選項,這樣之後咱們在進行建立項目的時候 只需使用原先的配置 就能夠了,而不用再進行配置。*
Vue CLI 3還附帶了一個完整的GUI
能夠建立新項目,還能夠管理項目中的插件和任務,它不須要Electron,只需用vue ui啓動它。
vue.config.js
vue-cli升級到3以後,減小了不少的配置文件,以前全部的配置文件都在vue create 搭建時preset預設 或者 後期能夠經過 命令參數 、 vue.config.js 中配置,全部的配置項都濃縮到了vue.config.js這個文件中,因此學懂並會用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.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.
},
css預處理器
主要爲css解決瀏覽器兼容、簡化CSS代碼 等問題
這樣,熱更新配置就完成了
建立項目目錄時出現的問題
vue create my-app報錯:write after endbr/>解決辦法。下降了npm的版本到@5.6.0。貌似是以前的npm版本6.1.0有點問題
Vue CLI 3須要 nodeJs ≥ 8.9 (官方推薦 8.11.0+,你可使用 nvm 或 nvm-windows在同一臺電腦中管理多個 Node 版本)
打包出現的問題
在根目錄下vue.config.js(若是沒有這個文件的話,能夠直接在更目錄中添加一個,配置參考)文件中進行修改。
Vue-Router 利用了瀏覽器自身的hash 模式和 history 模式的特性來實現前端路由(經過調用瀏覽器提供的接口)