vue配置vue.config.js超詳細教程
現(xiàn)在的 vue.config.js
const { defineConfig } = require('@vue/cli-service') module.exports = defineConfig({ transpileDependencies: true // 關(guān)閉eslint校驗 // lintOnSave: false })
一、在src目錄下創(chuàng)建 settings.js用于存放所有規(guī)則配置
module.exports = { title: 'Example示例', transpileDependencies: true // 關(guān)閉eslint校驗 // lintOnSave: false }
在vue.config.js中添加以下語句引入settings.js文件
const defaultSettings = require('./src/settings.js')
二、在vue.config.js文件中添加path模塊
path 模塊,提供了一些工具函數(shù),用于處理文件與目錄的路徑。path.join()方法用于連接路徑,該方法會正確識別當前系統(tǒng)的路徑分隔符,如Unix系統(tǒng)是”/“,Windows系統(tǒng)是”\“。__dirname 是node的一個全局變量,即獲得當前文件所在目錄的完整目錄名。
const path = require('path') function resolve(dir) { return path.join(__dirname, dir) }
三、在vue.config.js中添加端口和網(wǎng)址標題設(shè)置
const name = defaultSettings.title // 網(wǎng)址標題 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)址標題 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)用時的根路徑(默認'/'),也可用相對路徑(存在使用限制) 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驗證 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': { /* 目標代理服務(wù)器地址 */ target: 'http://localhost:8090/', /* 允許跨域 */ changeOrigin: true, pathRewrite: { // 標識替換 '^/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': '' ,作用如下:
使用代理,首先需要有一個標識,告訴程序這個連接要使用代理,不然的話,可能你的html、css、js、矢量圖等靜態(tài)資源都跑去代理。所以我們要通過一個唯一標識,讓接口使用代理,靜態(tài)資源文件使用本地。
proxy中的 '/api':{······},就是告訴node,我的接口是要以 /api 開頭的才使用代理。所有的接口都要寫成 /api/xx/xx ,以 /api 開頭,最后代理的接口路徑路徑就是 http://localhost:8090/api/xx/xxi
但是例子中真實的后臺數(shù)據(jù)接口里沒有 /api,直接就是 http://localhost:8080/xx/xx ,所以就需要配置 pathRewrite,用'^/api': '' 將 /api 去掉,這樣既有正確的標識,又能在真實請求接口的時候去掉 /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;
七、啟動項目測試
成功運行,并正常請求返回后端數(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項目配置Vue.config.js實戰(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給按鈕綁定一個單擊事件實現(xiàn)點擊按鈕就彈出dialog對話框
最近遇到了個需求是使用element-ui插件編寫頁面,點擊按鈕,彈出對話框,這篇文章主要給大家介紹了關(guān)于Vue中使用element-ui給按鈕綁定一個單擊事件實現(xiàn)點擊按鈕就彈出dialog對話框的相關(guān)資料,需要的朋友可以參考下2022-11-11vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法
今天小編就為大家分享一篇vue單頁應(yīng)用在頁面刷新時保留狀態(tài)數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vue關(guān)于接口請求數(shù)據(jù)過大導致瀏覽器崩潰的問題
這篇文章主要介紹了vue關(guān)于接口請求數(shù)據(jù)過大導致瀏覽器崩潰的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08