[2018-07-31更新]: vue-cli 3.0正式版的中文文檔已經出來了,詳細的能夠參考:https://cli.vuejs.org/zh/guide/css
Vue CLI介紹
Vue CLI 是一個基於 Vue.js 進行快速開發的完整系統,提供:html
- 經過 @vue/cli 搭建交互式的項目腳手架。
- 經過 @vue/cli + @vue/cli-service-global 快速開始零配置原型開發。
- 一個運行時依賴 (@vue/cli-service),該依賴:
- 可升級;
- 基於 webpack 構建,並帶有合理的默認配置;
- 能夠經過項目內的配置文件進行配置;
- 能夠經過插件進行擴展。
- 一個豐富的官方插件集合,集成了前端生態中最好的工具。
Vue CLI 致力於將 Vue 生態中的工具基礎標準化。它確保了各類構建工具可以基於智能的默認配置便可平穩銜接,這樣你能夠專一在撰寫應用上,而沒必要花好幾天去糾結配置的問題。與此同時,它也爲每一個工具提供了調整配置的靈活性,無需 eject前端
// use npm
npm i nrm -g
// use yarn
yarn global add nrm
複製代碼
查看可用的npm源vue
nrm ls
複製代碼
切換npm源(以使用taobao爲例)webpack
// 用法: nrm use ***
nrm use taobao
// 切換以後可用 nrm ls查看是否已經切換了npm源
複製代碼
npm i yarn -g
複製代碼
npm i @vue/cli -g
複製代碼
以搭建一個項目名稱爲
vue-test
的Vue前端項目爲例git
在終端輸入如下命令github
vue create vue-test
複製代碼
根據提示進行相應的配置(以手動配置爲例):web
Manually select features
// 進入到vue-test項目
cd vue-test
// - 啓動服務
yarn serve
// - 打包編譯
yarn build
// - 執行lint
yarn lint
// - 執行單元測試
yarn test:unit
複製代碼
此部份內容參考Vue-cli配置參考vue-cli
vue.config.js
是一個可選的配置文件,若是項目的(和package.json同級的)根目錄中存在這個文件,那麼它會被@vue/cli
自動加載。你也可使用package.json
中的vue
字段,可是注意這種寫法須要你嚴格遵守JSON的格式來寫。npm
這個文件應該導出了一個包含了選項的對象
// vue.config.js
module.exports = {
// 選項...
}
複製代碼
若是你的前端應用和後端 API 服務器沒有運行在同一個主機上,你須要在開發環境下將 API 請求代理到 API 服務器。這個問題能夠經過 vue.config.js 中的 devServer.proxy 選項來配置
webpack-dev-server
的選項都支持.注意:
host
、port
和https
可能會被命令行參數覆寫publicPath
和historyApiFallback
不該該被修改,由於它們須要和開發服務器的baseUrl同步以保障正常工做string | object
devServer.proxy
能夠是一個指向開發環境API服務器的字符串:module.exports = {
devServer: {
proxy: 'http://localhost:4000'
}
}
複製代碼
這會告訴開發服務器將任何未知請求 (沒有匹配到靜態文件的請求) 代理到http://localhost:4000
。
若是你想要更多的代理控制行爲,也可使用一個 path: options
成對的對象。完整的選項能夠查閱 http-proxy-middleware 。
vue-cli2.0
建立的項目的代理配置方式是修改config/index.js
文件中的proxyTable:
vue-cli3.0
的代理配置,直接將proxyTable中配置copy到devServer.proxy中便可:
module.exports = {
devServer: {
proxy: {
'/hrm/api': {
//target: 'http://192.168.1.209:10751/', // Dev環境
// target: 'http://192.168.1.238:10751/', // Test環境
// target: 'http://192.168.1.215:10751/', // Rls環境
target: 'http://192.168.1.218:10751/', // 正式環境
changeOrigin: true,
autoRewrite: true,
cookieDomainRewrite: true,
pathRewrite: {
'^/hrm/api/': '/'
}
}
}
}
}
複製代碼
調整webpack配置最簡單的方式就是在vue.config.js
中的configureWebpack
選項提供一個對象:
module.exports = {
// 其餘選項...
configureWebpack: {
plugins: [
new MyAwesomeWebpackPlugin()
//......
]
}
}
複製代碼
警告 有些 webpack 選項是基於 vue.config.js 中的值設置的,因此不能直接修改。例如你應該修改 vue.config.js 中的 outputDir 選項而不是修改 output.path;你應該修改 vue.config.js 中的 baseUrl 選項而不是修改 output.publicPath。這樣作是由於 vue.config.js 中的值會被用在配置裏的多個地方,以確保全部的部分都能正常工做在一塊兒。
以前有考慮過經過將現有項目進行修改,安裝@vue/cli以及相關的包,發現行不通。其實,最簡單的方法,就是使用vue-cli 3.0,建立一個新的項目,而後將原有的項目的源碼拷到新的項目中便可
src
下的內容src
中的源碼拷貝到新項目的src
中index.html
及favicon.ico
拷貝到新項目的public
中static
文件夾**也拷貝到新項目的public
中vue-cli 2.0 | vue-cli 3.0 |
---|---|
存放在 dist/static 下 |
存放於 dist/assets 下 |
注意: 使用vue-cli 2.x版本建立的項目,放在static下的文件,
build
以後,是會拷貝到dist\static
項目下的,因此,也必需要將static文件夾移到新項目的public
文件夾中; 會有放在static目錄的,大部分是一些用於下載的,或者是大的圖片、庫等不須要編譯的 2.0腳手架默認生成的靜態文件是放在dist/static
下,3.0默認升成的靜態文件是放在dist/assets
下的,可是對於項目的升級來講,影響不大
以下圖,原有項目的static中的histudy
文件夾和wx.zip
文件,編譯後是會被拷貝到dist/static
下的
vue-cli 3.0建立的項目,放在public目錄的,編譯時纔會被拷貝到dist目錄中,具體的配置方法,能夠經過vue.config.js去配置,有興趣的能夠去研究研究 以下圖:src
中的**.vue
等文件,編譯後生成的 img/css/js
文件夾,都會被拷貝到dist/assets
中,public中的文件/文件夾會被拷貝到dist目錄下。爲了避免修改原有項目的代碼,直接將原項目的static文件夾拷貝到新項目的public下便可。