国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:13:08
文檔

vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴

vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴:需求說明: 在開發(fā) vue 項(xiàng)目的過程中遇到的需求是要把 api 接口前綴暴露在命令行,通過 npm run build apiUrl 即可修改接口入口,用于從 docker 部署到不同的測(cè)試服務(wù)器上,其次是路由模式的問題,部署到測(cè)試服務(wù)器上的需要是 history 模式,但是產(chǎn)
推薦度:
導(dǎo)讀vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴:需求說明: 在開發(fā) vue 項(xiàng)目的過程中遇到的需求是要把 api 接口前綴暴露在命令行,通過 npm run build apiUrl 即可修改接口入口,用于從 docker 部署到不同的測(cè)試服務(wù)器上,其次是路由模式的問題,部署到測(cè)試服務(wù)器上的需要是 history 模式,但是產(chǎn)

需求說明:

在開發(fā) vue 項(xiàng)目的過程中遇到的需求是要把 api 接口前綴暴露在命令行,通過 npm run build apiUrl 即可修改接口入口,用于從 docker 部署到不同的測(cè)試服務(wù)器上,其次是路由模式的問題,部署到測(cè)試服務(wù)器上的需要是 history 模式,但是產(chǎn)品是用 electron + vue 開發(fā)的桌面應(yīng)用,electron 硬性要求 vue-router 的路由模式是 hash 模式,所以命令行需新增一個(gè)配置項(xiàng) mode ,mode 可選值有 history 、hash

最終結(jié)果:

npm run build '' hash  --->  使用源碼中寫死的 api 入口 ,vue-router 模式是 hash 模式

npm run build https://192.168.166.101:8444 history  --->  使用 https://192.168.166.101:8444 作為 api 入口,vue-router 模式是 history 模式

實(shí)現(xiàn):

1.新建 base/config.js 用于存放從 webpack.prod.conf.js 里寫入的數(shù)據(jù)

2.新建 base/index.js 用于將從 base/config.js 里導(dǎo)出的 config 掛載在 Vue 原型的 $config 對(duì)象上

3.新建 build/apiConfig.js 用于封裝 fs-extra 對(duì)文件的讀寫

4.在 webpack.prod.conf.js 將命令行中敲入的命令寫入 base/config.js 里

5.在 main.js 中將 base/index.js 拋出的 install 掛載到 Vue 上

6.在 Login.vue 和 router/index.js 里引入 this.$config.host 以及 base/config.js 即可

關(guān)鍵代碼:

2.新建 base/index.js 用于將從 base/config.js 里導(dǎo)出的 config 掛載在 Vue 原型的 $config 對(duì)象上

// 將 config 封裝成插件 
// example this.$config 
// 導(dǎo)入所有接口 
import config from './config'; 
const install = Vue => { 
 if(install.installed) 
 return; 
 install.installed = true; 
 Object.defineProperties(Vue.prototype, { 
 // 此處掛載在 Vue 原型的 $config 對(duì)象上 
 $config:{ 
 get(){ 
 return config; 
 } 
 } 
 }) 
} 
export default install; 

3.新建 build/apiConfig.js 用于封裝 fs-extra 對(duì)文件的讀寫

const fs = require("fs-extra"); 
const path = require("path"); 
var _path = path.join(__dirname, "../src/base/host.js"); 
if (!fs.pathExistsSync(_path)) { 
 // 如果不存在路徑 
 fs.mkdirpSync(_path); // 就創(chuàng)建 
} 
module.exports = { 
 read: function() { 
 let filesData = fs.readFileSync(_path, "utf-8", function(e, data) { 
 if (e) throw e; 
 return data; 
 }); 
 return filesData; 
 }, 
 write: function(writeStr) { 
 fs.open(_path, "w", function(e, fd) { 
 if (e) throw e; 
 fs.write(fd, writeStr, 0, "utf8", function(e) { 
 if (e) throw e; 
 fs.closeSync(fd); 
 }); 
 }); 
 } 
}; 

4.在 webpack.prod.conf.js 將命令行中敲入的命令寫入 base/config.js 里  

const apiConfig = require('./apiConfig'); 
apiConfig.read(); 
apiConfig.write( 
 `export const host = '${process.argv[2]}'; 
 export const mode = '${process.argv[3]}'; 
 // 默認(rèn)全部倒出 
 // 根絕需要進(jìn)行 
 export default { 
 host, 
 mode 
 }` 
); 

5.在 main.js 中將 base/index.js 拋出的 install 掛載到 Vue 上

import host from './base/index'; 
Vue.use(host); 

6.在 Login.vue 里引入 this.$config.host

this.$store.set("presetPort", this.$config.host ? this.$config.host.split(":")[2] : "443"); // 設(shè)置預(yù)置端口 
this.$store.set("presetHost", this.$config.host ? this.$config.host.split(":")[0] : "https"); // 設(shè)置預(yù)置協(xié)議 
this.$store.set("presetIP", this.$config.host ? this.$config.host.split(":")[1].split("/")[2] : "192.168.166.109"); // 設(shè)置預(yù)置IP 

6.在 router/index.js 里引入 base/config.js

import { mode } from '@/base/config'; 
let router = null; 
let routes = [ 
 { 
 path: 'xxx', 
 name: 'xxx', 
 component: xxx 
 }...]; 
mode === 'history' ? routes.push({path:"*",component:xxx}) : ""; 
router = new Router({ 
 mode: mode, 
 routes:routes 
}) 
export default router; 

總結(jié)

以上所述是小編給大家介紹的vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴

vue 項(xiàng)目打包通過命令修改 vue-router 模式 修改 API 接口前綴:需求說明: 在開發(fā) vue 項(xiàng)目的過程中遇到的需求是要把 api 接口前綴暴露在命令行,通過 npm run build apiUrl 即可修改接口入口,用于從 docker 部署到不同的測(cè)試服務(wù)器上,其次是路由模式的問題,部署到測(cè)試服務(wù)器上的需要是 history 模式,但是產(chǎn)
推薦度:
標(biāo)簽: 模式 修改 打包
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产日韩欧美亚洲综合首页 | 亚洲一区二区三区在线免费观看 | 国产精品1区2区3区 国产精品1234区 | 91专区| 亚洲欧美另类第一页 | 欧美中日韩在线 | 亚洲最新视频在线观看 | 亚洲欧洲日韩综合 | 欧美国产日韩在线播放 | 日本欧美一区二区 | 国产欧美日韩在线播放 | 国内精品视频在线观看 | 欧美日韩精品一区二区在线播放 | 久久精品视频观看 | 亚洲欧美国产精品 | 国产精品久久久久久久9999 | 国产精品欧美日韩 | 亚洲精品在线免费观看视频 | 久久国产成人午夜aⅴ影院 久久国产精品成人免费古装 | 久久夜色精品国产亚洲 | 日韩欧美一区二区三区中文精品 | 亚洲一区中文 | 国产精品久久久久一区二区 | 多人伦精品一区二区三区视频 | 国产成人精品一区二三区 | 欧美一区二区在线免费观看 | 国产91精品久久久久999 | 国产资源网站 | 欧美精品一区二区精品久久 | 国产精品免费观看网站 | 亚洲美女一区二区三区 | 欧美在线播放视频 | 成人午夜精品久久久久久久小说 | 亚洲 自拍 另类 欧美 综合 | 天天躁夜夜躁狠狠躁躁88 | 国产麻豆流白浆在线观看 | 91精品一区二区三区在线 | 中文字幕高清 | 国产一区二区免费播放 | 日本三级免费 | 美女一级毛片视频 |