首页 > 其他分享 >001 vue.config相关

001 vue.config相关

时间:2024-10-30 14:20:54浏览次数:1  
标签:vue api baseURL 001 proxyURL proxy path config

const proxyURL = require("./src/common/proxy-config").proxyURL;
const baseURL = require('./src/common/proxy-config').baseURL;
const path = require('path');

function resolve(dir) {
return path.join(__dirname, dir);
}

module.exports = {
assetsDir: "static",
productionSourceMap: false,
devServer: {
host: '0.0.0.0',
port: 8890, // 端口号
proxy: {
[baseURL]: {
target: proxyURL,
changeOrigin: true,
autoRewrite: true,
},
},
},
};
当然,下面是对这段 vue.config.js 配置文件的详细分析,包括每个部分的作用和实现逻辑。

1. 引入模块和变量

const proxyURL = require("./src/common/proxy-config").proxyURL;
const baseURL = require('./src/common/proxy-config').baseURL;
const path = require('path');
  • proxyURLbaseURL

    • 这两个变量是从 ./src/common/proxy-config 模块中导入的。假设 proxy-config.js 文件内容如下:
      module.exports = {
        proxyURL: 'http://api.example.com',
        baseURL: '/api'
      };
      
    • proxyURL 是目标服务器的 URL,例如 http://api.example.com
    • baseURL 是需要代理的路径前缀,例如 /api
  • path 模块

    • path 是 Node.js 的内置模块,用于处理和转换文件路径。

2. 辅助函数 resolve

function resolve(dir) {
  return path.join(__dirname, dir);
}
  • resolve 函数
    • 这个函数用于将相对路径转换为绝对路径。
    • __dirname 是 Node.js 的全局变量,表示当前模块的目录名。
    • path.join(__dirname, dir) 将当前模块的目录名与传入的相对路径 dir 连接起来,生成一个绝对路径。

3. 配置对象 module.exports

module.exports = {
  assetsDir: "static",
  productionSourceMap: false,
  devServer: {
    host: '0.0.0.0',
    port: 8890, // 端口号
    proxy: {
      [baseURL]: {
        target: proxyURL,
        changeOrigin: true,
        autoRewrite: true,
      },
    },
  },
};
  • assetsDir: "static"

    • 指定生成的静态资源目录为 static。这意味着在构建项目时,所有的静态资源(如图片、字体等)将会被放置在 dist/static 目录下。
  • productionSourceMap: false

    • 生产环境下不生成 source map。source map 用于调试,但在生产环境中生成 source map 会增加打包体积和构建时间,通常不需要。
  • devServer

    • 配置开发服务器的设置。
    • host: '0.0.0.0'
      • 允许外部设备通过局域网访问开发服务器。0.0.0.0 表示监听所有网络接口。
    • port: 8890
      • 开发服务器运行的端口号为 8890。
    • proxy
      • 配置代理,用于解决开发环境下的跨域问题。
      • [baseURL]
        • 动态生成代理路径。baseURL 是一个变量,假设其值为 /api,则代理配置为 { '/api': { ... } }
      • target: proxyURL
        • 目标服务器的 URL。假设 proxyURL 的值为 http://api.example.com,则所有匹配 /api 的请求都会被代理到 http://api.example.com
      • changeOrigin: true
        • 改变请求头中的 hosttarget。这有助于解决跨域问题,因为目标服务器会认为请求来自同一个域名。
      • autoRewrite: true
        • 自动重写路径。如果目标服务器返回的响应中包含相对路径,这些路径会被自动重写为代理路径。

总结

这段 vue.config.js 配置文件的主要作用是:

  1. 引入必要的模块和变量:从 proxy-config.js 文件中导入 proxyURLbaseURL,并引入 path 模块。
  2. 定义辅助函数resolve 函数用于将相对路径转换为绝对路径。
  3. 配置开发服务器
    • 指定静态资源目录。
    • 关闭生产环境下的 source map。
    • 配置开发服务器的主机和端口。
    • 设置代理,解决开发环境下的跨域问题。

通过这些配置,你可以确保在开发过程中能够顺利地访问后端 API,而无需担心跨域问题。

标签:vue,api,baseURL,001,proxyURL,proxy,path,config
From: https://www.cnblogs.com/lmzzr24/p/18515760

相关文章

  • 基于Java+SpringBoot+Vue的课程答疑系统
    基于Java+SpringBoot+Vue的课程答疑系统前言✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • (开题报告)django+vue小红书App论文+源码
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于django和vue在社交类App开发中的应用研究,现有研究主要集中在电商、在线教育等领域。专门针对构建类似小红书App这种以用户分享、社区......
  • 基于node.js+vue基于android的医院导航系统后(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景在现代医疗体系中,医院的规模不断扩大,科室分布日益复杂,患者在就医过程中寻找科室、医生等目标往往面临诸多困难。关于医院导航问题的研究,现有研究主要以......
  • 基于node.js+vue基于Android的智慧社区物业服务系统后(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着城市化进程的加快,社区物业管理面临着越来越大的挑战。关于智慧社区物业服务系统的研究,现有研究主要集中在传统物业管理模式的改进上,专门针对基于And......
  • 基于node.js+vue基于B_S的停车管理系统的设计与实现(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景随着城市交通压力的增大,停车难问题日益凸显。关于停车管理系统的研究,现有研究主要集中在传统的停车场管理方式上,专门针对基于B/S架构的停车管理系统的研......
  • 基于node.js+vue基于Android的“养身坊”APP的设计后(开题+程序+论文)计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容选题背景随着人们生活水平的提高和健康意识的增强,养生保健逐渐成为大众关注的热点。然而,市面上的养生信息繁杂,质量参差不齐,缺乏一个系统化、专业化的平台来提供科学......
  • 《vue3第五章》新的组件,包含:Fragment、Teleport、Suspense
    @目录五、新的组件1.Fragment2.Teleport案例完整代码3.Suspense案例完整代码本人其他相关文章链接五、新的组件1.Fragment在Vue2中:组件必须有一个根标签在Vue3中:组件可以没有根标签,内部会将多个标签包含在一个Fragment虚拟元素中好处:减少标签层级,减小内存占用2......
  • 《vue3第六章》其他,包含:全局API的转移、其他改变
    @目录六、其他1.全局API的转移2.其他改变六、其他1.全局API的转移Vue2.x有许多全局API和配置。例如:注册全局组件、注册全局指令等。//注册全局组件Vue.component('MyButton',{data:()=>({count:0}),template:'<button@click="count++">Clicke......
  • 《vue3第四章》Composition API 的优势,包含Options API 存在的问题、Composition API
    @目录四、CompositionAPI的优势1.OptionsAPI存在的问题2.CompositionAPI的优势四、CompositionAPI的优势1.OptionsAPI存在的问题使用传统OptionsAPI中,新增或者修改一个需求,就需要分别在data,methods,computed里修改。CompositionAPI的优势-图1.gifComposition......
  • vue3知识点:Teleport组件
    @目录五、新的组件2.Teleport案例完整代码本人其他相关文章链接五、新的组件2.Teleport问题:什么是Teleport? 答案:Teleport是一种能够将我们的组件html结构移动到指定位置的技术。<teleportto="移动位置"> <divv-if="isShow"class="mask"> <divclass="dialog"> &l......