亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 98
粉絲 1
評論 0
訪問量 82734
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
vue3接口環(huán)境配置
阿杰
原創(chuàng)
2238人瀏覽過

前言

vue項目開發(fā),會經歷本地測試、打包、生產過程,其中不同階段需要調試的api接口環(huán)境不同,要根據具體來設置。其實主要就是兩個方面,配置‘本地運行’和‘打包運行’的api接口環(huán)境。

vue3項目的配置

  • vue3項目沒有了config文件夾,需要在項目的根目錄下創(chuàng)建相關文件

(1) 根目下創(chuàng)建指定文件
在項目的根目錄新建3個文件夾,分別對應開發(fā)(dev),測試(test),生產(prod) 文件命名: .env.dev , .env.test , .env.prod

(2) 剛剛創(chuàng)建的三個文件對應的內容代碼

  • .env.dev
  1. NODE_ENV = 'development'
  2. VUE_APP_CURRENTMODE = 'dev'
  3. VUE_APP_BASEURL = '本地開發(fā)api地址'
  • .env.prod
  1. NODE_ENV = 'production'
  2. VUE_APP_CURRENTMODE = 'prod'
  3. VUE_APP_BASEURL = '正式環(huán)境api地址'
  • .env.test
  1. NODE_ENV = 'production'
  2. VUE_APP_CURRENTMODE = 'prod'
  3. VUE_APP_BASEURL = '測試環(huán)境api地址'

(3) 修改package.json腳本

  1. "scripts": {
  2. "serve": "vue-cli-service serve",
  3. "build": "vue-cli-service build",
  4. "lint": "vue-cli-service lint",
  5. "dev":"vue-cli-service serve --mode dev",//本地運行命名
  6. "build:test":"vue-cli-service build --mode test",//測試環(huán)境打包命名
  7. "build:pro":"vue-cli-service build --mode prod"//正式環(huán)境打包命名
  8. },

(4) 項目中使用環(huán)境變量

  1. // 任意地方都可以使用
  2. console.log(process.env.VUE_APP_BASEURL)

(5) 運行命令

  1. 本地開發(fā)啟動命令:npm run dev
  2. 測試環(huán)境打包:npm run build:test
  3. 正式環(huán)境打包:npm run build:pro

正式配置請求環(huán)境

1.項目根目錄創(chuàng)建環(huán)境變量代碼和指定文件

本地運行環(huán)境
(1) .env.dev

  1. # 本地環(huán)境
  2. NODE_ENV = 'development'
  3. # 本地環(huán)境模塊名
  4. VUE_APP_CURRENTMODE = 'dev'
  5. # 本地環(huán)境,api前綴
  6. VUE_APP_BASE_API = '/api'
  7. # 本地測試環(huán)境,url地址
  8. VUE_APP_BASE_URL = '本地開發(fā)api地址'

本地運行測試環(huán)境
(2).env.dev_test

  1. # 本地測試環(huán)境
  2. NODE_ENV = 'development'
  3. # 本地測試環(huán)境模塊名
  4. VUE_APP_CURRENTMODE = 'dev_test'
  5. # 本地測試環(huán)境,api前綴
  6. VUE_APP_BASE_API = '/api'
  7. # 本地測試環(huán)境,url地址
  8. VUE_APP_BASE_URL = '本地測試開發(fā)api地址'

打包正式環(huán)境
(3).env.prod

  1. # 線上環(huán)境
  2. NODE_ENV = 'production'
  3. # 線上環(huán)境模塊名
  4. VUE_APP_CURRENTMODE = 'prod'
  5. # 線上環(huán)境,api前綴
  6. VUE_APP_BASE_API = '/api_production'
  7. # 線上環(huán)境,url地址
  8. VUE_APP_BASE_URL = '線上正式環(huán)境api地址'

打包測試環(huán)境
(4).env.prod_test

  1. # 線上環(huán)境
  2. NODE_ENV = 'production'
  3. # 線上測試環(huán)境模塊名
  4. VUE_APP_CURRENTMODE = 'prod'
  5. # 線上測試環(huán)境,api前綴
  6. VUE_APP_BASE_API = '/api_test'
  7. # 線上測試環(huán)境,url地址
  8. VUE_APP_BASE_URL = '線上測試環(huán)境api地址'

項目結構如下

2.項目根目錄創(chuàng)建vue.config.js,配置反向代理解決跨域

當前配置可以解決請求跨域 和打包頁面白板

  1. module.exports = {
  2. // 設置代理(解決請求跨域)
  3. devServer:{
  4. host: '0.0.0.0', //本地地址
  5. port: 8080, //自定義端口
  6. https: false, //false關門https,true為開啟
  7. open: false, //自動打開瀏覽器
  8. proxy:{
  9. [process.env.VUE_APP_BASE_API]:{
  10. target: process.env.VUE_APP_BASE_URL,
  11. ws: true,
  12. changeOrigin: true,
  13. pathRewrite:{
  14. ['^'+process.env.VUE_APP_BASE_API]:''
  15. }
  16. }
  17. }
  18. },
  19. // 解決打包頁面白板
  20. publicPath: "./"
  21. }

3.封裝axios配置環(huán)境變量,讓請求本地運行的時候走代理服務器 發(fā)布線上的時候同時也可以兼容

src/utils/request.js

  1. import axios from 'axios'
  2. const service = axios.create({
  3. baseURL: process.env.NODE_ENV==='development'?process.env.VUE_APP_BASE_API:process.env.VUE_APP_BASE_URL,
  4. timeout: 5000
  5. })
  6. // 不需要token驗證的 接口白名單
  7. // const APIWhite = ['users/login']
  8. // 請求攔截 設置統(tǒng)一header
  9. service.interceptors.request.use(
  10. config =>{
  11. return config;
  12. },
  13. error =>{
  14. return Promise.reject(error)
  15. }
  16. )
  17. // 響應攔截 401 token過期等處理
  18. service.interceptors.response.user(
  19. response =>{
  20. return response
  21. },
  22. error =>{
  23. return Promise.reject(error)
  24. }
  25. )
  26. export default service

api封裝管理(vue3不能像vue2一樣在main.js掛載全局變量)
scr/api/index.js

  1. import request from '@/utils/request'
  2. // 登錄
  3. export function doLogin (data) {
  4. return request({url: '/index/envtest',method: 'POST', data})
  5. }

頁面調用

  1. import { doLogin } from '../api/index'
  2. doLogin({},res=>{
  3. console.log(res);
  4. })

結果如下:

本博文版權歸博主所有,轉載請注明地址!如有侵權、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網理性發(fā)言,請遵守新聞評論服務協(xié)議
0條評論
作者最新博文
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網:公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術交流群
PHP中文網訂閱號
每天精選資源文章推送
PHP中文網APP
隨時隨地碎片化學習
PHP中文網抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網,和優(yōu)秀的人一起學習!
    全站2000+教程免費學