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中添加以下語句引入settings.js文件
const defaultSettings = require('./src/settings.js')二、在vue.config.js文件中添加path模塊
path 模塊,提供了一些工具函數(shù),用于處理文件與目錄的路徑。path.join()方法用于連接路徑,該方法會正確識別當(dāng)前系統(tǒng)的路徑分隔符,如Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“。__dirname 是node的一個全局變量,即獲得當(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)用時的根路徑(默認(rèn)'/'),也可用相對路徑(存在使用限制)
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)境下每次保存代碼時都啟用 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: { // 錯誤、警告在頁面彈出
// warnings: false,
// errors: true
// },
/* 跨域代理 */
proxy: {
// 第一種寫法
'/api': {
/* 目標(biāo)代理服務(wù)器地址 */
target: 'http://localhost:8090/',
/* 允許跨域 */
changeOrigin: true,
pathRewrite: { // 標(biāo)識替換
'^/api': '/static/mock' // 請求數(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': ''
}
}
}
}
}至此前后端解決跨域的方法都有了,可只寫一個,也可全寫
devServer.proxy中的 pathRewrite說明:
如圖,pathRewrite設(shè)置了 '^/api': '' ,作用如下:
使用代理,首先需要有一個標(biāo)識,告訴程序這個連接要使用代理,不然的話,可能你的html、css、js、矢量圖等靜態(tài)資源都跑去代理。所以我們要通過一個唯一標(biāo)識,讓接口使用代理,靜態(tài)資源文件使用本地。
proxy中的 '/api':{······},就是告訴node,我的接口是要以 /api 開頭的才使用代理。所有的接口都要寫成 /api/xx/xx ,以 /api 開頭,最后代理的接口路徑路徑就是 http://localhost:8090/api/xx/xxi
但是例子中真實(shí)的后臺數(shù)據(jù)接口里沒有 /api,直接就是 http://localhost:8080/xx/xx ,所以就需要配置 pathRewrite,用'^/api': '' 將 /api 去掉,這樣既有正確的標(biāo)識,又能在真實(shí)請求接口的時候去掉 /api 。
五、創(chuàng)建上一步中的開發(fā)環(huán)境配置文件.env.development
可對應(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;七、啟動項(xiàng)目測試

成功運(yùn)行,并正常請求返回后端數(shù)據(jù)
總結(jié)
到此這篇關(guān)于vue配置vue.config.js的文章就介紹到這了,更多相關(guān)vue配置vue.config.js內(nèi)容請搜索腳本之家以前的文章或繼續(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配置報錯ValidationError:?Invalid?options?object解決辦法
- vue.config.js配置報錯解決辦法(可能是與webpack混淆)
相關(guān)文章
Vue中使用element-ui給按鈕綁定一個單擊事件實(shí)現(xiàn)點(diǎn)擊按鈕就彈出dialog對話框
最近遇到了個需求是使用element-ui插件編寫頁面,點(diǎn)擊按鈕,彈出對話框,這篇文章主要給大家介紹了關(guān)于Vue中使用element-ui給按鈕綁定一個單擊事件實(shí)現(xiàn)點(diǎn)擊按鈕就彈出dialog對話框的相關(guān)資料,需要的朋友可以參考下2022-11-11
vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法
今天小編就為大家分享一篇vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
詳解Vue中是如何實(shí)現(xiàn)cache緩存的
這篇文章分享一個比較有意思的東西,那就是Vue中如何實(shí)現(xiàn)cache緩存的,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07
vue關(guān)于接口請求數(shù)據(jù)過大導(dǎo)致瀏覽器崩潰的問題
這篇文章主要介紹了vue關(guān)于接口請求數(shù)據(jù)過大導(dǎo)致瀏覽器崩潰的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
ubuntu中利用nginx部署vue項(xiàng)目的完整步驟
Nginx是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like 協(xié)議下發(fā)行,下面這篇文章主要給大家介紹了關(guān)于ubuntu中利用nginx部署vue項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2022-02-02

