前言
目前看到該文章已經被
[腳本之家](https://www.jb51.net/article/160146.htm)
[碼農教程](http://www.manongjc.com/article/109553.html)
[bbsmax](https://www.bbsmax.com/A/VGzlp71wzb/)
等多處收錄,感到灰常開心~~
但願有人再轉載的時候可以加上出處(不強制)
本身的總結可以獲得擴展,幫助更多的人,感受很是高興,會繼續努力下去噠~~css
---------------------------------------------------- 正文開始 --------------------------------------------------html
1. 使用vue-cli3新建項目: https://cli.vuejs.org/zh/guide/creating-a-project.htmlvue
注意,我這裏用gitbash很差選擇選項,我就用了基本的cmd(系統命令提示符):上下箭頭和空格鍵可控制選項。 ios
詳細步驟: git
(1)vue create init: 這裏我選擇了自定義配置github
(2)使用上下箭頭和空格進行選擇,我這裏選擇了這四個,之因此沒用css pre-processors是由於個人項目中要用postcss-cssnext,後面會有詳細配置說明ajax
(3)後面的vue-cli
Use class-style component syntax? 是否使用class風格的組件語法?json
Use Babel alongside TypeScript for auto-detected polyfills? 是否使用babel作轉義?axios
Use history mode for router? 是否使用路由的history
模式?
Where do you prefer placing config for Babel, PostCSS, ESLint, etc.?
把babel,postcss,eslint這些配置文件放哪?
Save this as a preset for future projects? (Y/n) 是否記錄一下以便下次繼續使用這套配置?
2. 改項目端口(我的需求): 在根目錄新建vue.config.js(vue-cli3其餘配置相關也寫在這裏)
module.exports = { devServer: { port: 8100, // 端口號 } }
3. 根據環境設置相關變量(好比請求地址、打包輸出路徑等),並打包不一樣環境代碼
(1)在根目錄新建appconf.json,保存不一樣環境的對應變量配置
{ "dev": { "serverUrl": "http://localhost:57156/" }, "build": { "serverUrl": "http://build.com/", "outputDir": "../../dist/build", "productId": "111" }, "alpha": { "serverUrl": "http://build-test.com/", "outputDir": "../../dist/alpha", "productId": "222" } }
(2)src下新建common文件夾,下面新建configByEnv.js,根據環境設置對應變量值
var path = require('path') var appconf = require('../../appconf.json') var serverurl var productId = '' switch (process.env.NODE_ENV) { case 'production': serverurl = appconf.build.serverUrl productId = appconf.build.productId break case 'development': serverurl = appconf.dev.serverUrl break case 'alpha': serverurl = appconf.alpha.serverUrl productId = appconf.alpha.productId break } // 配置 build 文件輸出路徑, 可使用絕對路徑或相對路徑 var outputDir var reg = /^\.(\.)?\/.*/ if (reg.test(appconf.build.outputDir)) { if (process.env.NODE_ENV == 'alpha') outputDir = path.resolve(__dirname, appconf.alpha.outputDir) // 相對路徑 else outputDir = path.resolve(__dirname, appconf.build.outputDir) // 相對路徑 } else { if (process.env.NODE_ENV == 'alpha') outputDir = appconf.alpha.outputDir else outputDir = appconf.build.outputDir // 絕對路徑 } var conf = { outputDir: outputDir, serverUrl: serverurl, env: process.env.NODE_ENV, productId: productId } module.exports = conf
(3) 在須要用以上變量的地方引入便可,如
.js中: var { outputDir } = require('./src/common/configByEnv.js');
.ts中:import {serverUrl} from '@/common/configByEnv.js';
注意:ts這樣引入會報錯,須要將tsconfig.json中添加 "allowJs": true,
-------- 上面針對某些變量根據不一樣環境設置了不一樣值,那麼打包時只要更改環境,打包後則會取到不一樣環境對應的特定值 -----
由於項目中已經有開發環境和打包build環境,我這裏只要再加一個打包alpha測試環境:(這裏只簡述實現步驟,想了解更多點擊https://www.cnblogs.com/XHappyness/p/9337229.html )
(1)package.json 中添加
{ ··· "scripts": { "serve": "vue-cli-service serve", "alpha": "vue-cli-service build --mode alpha", "build": "vue-cli-service build" } ··· }
(2)根目錄新建.env.alpha,其內容爲:
NODE_ENV = 'alpha'
(3)在vue.config.js設置打包輸出路徑
var { outputDir } = require('./src/common/configByEnv.js'); module.exports = { outputDir: outputDir, ··· }
4. 在項目中引入並配置postcss-nextcss: http://www.javashuo.com/article/p-rzjrodnb-es.html
5. 引入組件庫:我這裏用了elementUI,配置步驟: http://www.javashuo.com/article/p-mzocfoef-gn.html
6. 引入ajax庫:我這裏用了axios,配置步驟: http://www.javashuo.com/article/p-ggoialin-gx.html
7. 以上爲vue-cli3初始化項目和一些基礎配置,可根據我的喜愛將ts和css文件與.vue分離。而後,愉快的寫代碼吧。。
附: 該配置的項目地址: https://github.com/XHappyness/vue-cli3_initProject