vue配置vue.config.js超詳細(xì)教程
現(xiàn)在的 vue.config.js
const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ transpileDependencies: true // 關(guān)閉eslint校驗(yàn) // lintOnSave: false })
一、在src目錄下創(chuàng)建 settings.js用于存放所有規(guī)則配置
module.exports = { title: 'Example示例', transpileDependencies: true // 關(guān)閉eslint校驗(yàn) // lintOnSave: false }
在vue.config.js中添加以下語(yǔ)句引入settings.js文件
const defaultSettings = require('./src/settings.js')
二、在vue.config.js文件中添加path模塊
path 模塊,提供了一些工具函數(shù),用于處理文件與目錄的路徑。path.join()方法用于連接路徑,該方法會(huì)正確識(shí)別當(dāng)前系統(tǒng)的路徑分隔符,如Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“。__dirname 是node的一個(gè)全局變量,即獲得當(dāng)前文件所在目錄的完整目錄名。
const path = require('path') function resolve(dir) { return path.join(__dirname, dir) }
三、在vue.config.js中添加端口和網(wǎng)址標(biāo)題設(shè)置
const name = defaultSettings.title // 網(wǎng)址標(biāo)題 const port = 8099 // 端口配置
四、在vue.config.js中配置module.exports及代理,并在前端解決跨域問題
const path = require('path') const defaultSettings = require('./src/settings.js') function resolve(dir) { return path.join(__dirname, dir) } const name = defaultSettings.title // 網(wǎng)址標(biāo)題 const port = 8099 // 端口配置 module.exports = { // 配置基地址BASE_URL等于publicpath的值 // NODE_ENV:Node.js 暴露給執(zhí)行腳本的系統(tǒng)環(huán)境變量。通常用于確定在開發(fā)環(huán)境還是生產(chǎn)環(huán)境 // 部署應(yīng)用時(shí)的根路徑(默認(rèn)'/'),也可用相對(duì)路徑(存在使用限制) publicPath: process.env.NODE_ENV === 'development' ? '/' : './', // publicPath: process.env.NODE_ENV === "production" ? "./" : "./", outputDir: 'dist', // 輸出文件目錄 assetsDir: 'static', // // 放置靜態(tài)資源 lintOnSave: process.env.NODE_ENV === 'development',// true/false 設(shè)置為開發(fā)環(huán)境下每次保存代碼時(shí)都啟用 eslint驗(yàn)證 productionSourceMap: false, // 如果你不需要生產(chǎn)環(huán)境的 source map,可以將其設(shè)置為false以加速生產(chǎn)環(huán)境構(gòu)建 devServer: { // 配置開發(fā)服務(wù)器 port: port, // overlay: { // 錯(cuò)誤、警告在頁(yè)面彈出 // warnings: false, // errors: true // }, /* 跨域代理 */ proxy: { // 第一種寫法 '/api': { /* 目標(biāo)代理服務(wù)器地址 */ target: 'http://localhost:8090/', /* 允許跨域 */ changeOrigin: true, pathRewrite: { // 標(biāo)識(shí)替換 '^/api': '/static/mock' // 請(qǐng)求數(shù)據(jù)路徑別名,這里是注意將static/mock放入public文件夾 } }, // 第二種寫法 [process.env.VUE_APP_BASE_API]: { // 使用環(huán)境變量中的值 target: 'http://127.0.0.1:9000/', changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '', '^/api': '' } } } } }
至此前后端解決跨域的方法都有了,可只寫一個(gè),也可全寫
devServer.proxy中的 pathRewrite說明:
如圖,pathRewrite設(shè)置了 '^/api': '' ,作用如下:
使用代理,首先需要有一個(gè)標(biāo)識(shí),告訴程序這個(gè)連接要使用代理,不然的話,可能你的html、css、js、矢量圖等靜態(tài)資源都跑去代理。所以我們要通過一個(gè)唯一標(biāo)識(shí),讓接口使用代理,靜態(tài)資源文件使用本地。
proxy中的 '/api':{······},就是告訴node,我的接口是要以 /api 開頭的才使用代理。所有的接口都要寫成 /api/xx/xx ,以 /api 開頭,最后代理的接口路徑路徑就是 http://localhost:8090/api/xx/xxi
但是例子中真實(shí)的后臺(tái)數(shù)據(jù)接口里沒有 /api,直接就是 http://localhost:8080/xx/xx ,所以就需要配置 pathRewrite,用'^/api': '' 將 /api 去掉,這樣既有正確的標(biāo)識(shí),又能在真實(shí)請(qǐng)求接口的時(shí)候去掉 /api 。
五、創(chuàng)建上一步中的開發(fā)環(huán)境配置文件.env.development
可對(duì)應(yīng)配置相應(yīng)的生產(chǎn)環(huán)境配置文件
ENV = 'development' VUE_APP_BASE_API = 'http://localhost:8090/api/'
六、修改request.js中的baseURL
import axios from "axios"; const service = axios.create({ // baseURL: 'http://localhost:8090/api', baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url timeout: 3000 }) export default service;
七、啟動(dòng)項(xiàng)目測(cè)試
成功運(yùn)行,并正常請(qǐng)求返回后端數(shù)據(jù)
總結(jié)
到此這篇關(guān)于vue配置vue.config.js的文章就介紹到這了,更多相關(guān)vue配置vue.config.js內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- vue.config.js常用配置詳解
- Vue-cli3項(xiàng)目配置Vue.config.js實(shí)戰(zhàn)記錄
- 如何配置vue.config.js 處理static文件夾下的靜態(tài)文件
- vue-cli3中vue.config.js配置教程詳解
- vue3中vue.config.js配置及注釋詳解
- vue.config.js完整配置教程
- vue2之vue.config.js最全配置教程
- vue3中配置文件vue.config.js不生效的解決辦法
- Vue.config.js配置報(bào)錯(cuò)ValidationError:?Invalid?options?object解決辦法
- vue.config.js配置報(bào)錯(cuò)解決辦法(可能是與webpack混淆)
相關(guān)文章
Vue中使用element-ui給按鈕綁定一個(gè)單擊事件實(shí)現(xiàn)點(diǎn)擊按鈕就彈出dialog對(duì)話框
最近遇到了個(gè)需求是使用element-ui插件編寫頁(yè)面,點(diǎn)擊按鈕,彈出對(duì)話框,這篇文章主要給大家介紹了關(guān)于Vue中使用element-ui給按鈕綁定一個(gè)單擊事件實(shí)現(xiàn)點(diǎn)擊按鈕就彈出dialog對(duì)話框的相關(guān)資料,需要的朋友可以參考下2022-11-11vue單頁(yè)應(yīng)用在頁(yè)面刷新時(shí)保留狀態(tài)數(shù)據(jù)的方法
今天小編就為大家分享一篇vue單頁(yè)應(yīng)用在頁(yè)面刷新時(shí)保留狀態(tài)數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09詳解Vue中是如何實(shí)現(xiàn)cache緩存的
這篇文章分享一個(gè)比較有意思的東西,那就是Vue中如何實(shí)現(xiàn)cache緩存的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07vue關(guān)于接口請(qǐng)求數(shù)據(jù)過大導(dǎo)致瀏覽器崩潰的問題
這篇文章主要介紹了vue關(guān)于接口請(qǐng)求數(shù)據(jù)過大導(dǎo)致瀏覽器崩潰的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08移動(dòng)端調(diào)試神器vConsole使用詳解
vConsole?是框架無關(guān)的,可以在?Vue、React?或其他任何框架中使用,今天通過本文給大家介紹移動(dòng)端調(diào)試神器vConsole使用,感興趣的朋友一起看看吧2022-04-04ubuntu中利用nginx部署vue項(xiàng)目的完整步驟
Nginx是一款輕量級(jí)的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行,下面這篇文章主要給大家介紹了關(guān)于ubuntu中利用nginx部署vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2022-02-02