vue项目打包之后接口出现错误的问题及解决

 更新时间:2022年04月23日 10:53:39   作者:温情key  
这篇文章主要介绍了vue项目打包之后接口出现错误的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

错误信息

这是新建一个项目还原问题,node简单写了个数据返回

关键代码

const express = require('express')
const app = express();
// 解决跨域问题
app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Headers', 'Content-Type');
    next();
})
// 调用接口直接返回一个数组
app.get('/getData', (req, res) => {
    res.send([
    	{
            id: 1,
            name: 'GAI'
        },
        {
            id: 2,
            name: 'keyNg'
        },
        {
            id: 3,
            name: '闪火'
        }
    ])
})
// api/index.js
import axios from 'axios'
export function getData() {
    return axios({
        url: 'api/getData',
        method: 'get'
    })
}
// home.vue
mounted() { 
   getData().then(res => {
     console.log(res);
   })
},

打包前

打包后

解决方式

设置环境变量

引用一句官网原话:

请注意,只有 NODE_ENV,BASE_URL 和以 VUE_APP_ 开头的变量将通过 webpack.DefinePlugin 静态地嵌入到客户端侧的代码中。这是为了避免意外公开机器上可能具有相同名称的私钥。

1.根目录新增.env.development文件(会在开发环境被载入)

// .env.development
VUE_APP_TITLE = '温情dev'
VUE_APP_ENV = 'dev'
VUE_APP_BASE_URL = 'http://localhost:3000'

2.根目录新增.env.production文件(会在生产环境被载入)

// .env.production
VUE_APP_TITLE = '温情pro'
VUE_APP_ENV = 'pro'
VUE_APP_BASE_URL = 'http://localhost:3000'

3.改一下 axios 请求方法

// api/index
// 这里只是简单解决一下问题
// 重点就是把开发环境和生产环境请求地址区分开来就可以了, 根据实际情况自行改动
import axios from 'axios'
let baseURL = '';
// process.env.VUE_APP_ENV拿到我们在前面设置的模式,
// 如果现在是开发环境会使用`.env.development`里面设置的环境变量等于`dev`
// 如果现在是生产环境会使用`.env.production`里面设置的环境变量等于`pro`
if(process.env.VUE_APP_ENV === 'dev') {
    baseURL = '/api';
} else {
    baseURL = process.env.VUE_APP_BASE_URL
}
export function getData() {
    return axios({
        url: `${baseURL}/getData`,
        method: 'get'
    })
}

小提示:

.env.development和.env.production文件修改之后记得重新跑一下项目

总结

区分开发模式 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue中el-tree动态初始默认选中和全选实现方法

    vue中el-tree动态初始默认选中和全选实现方法

    这篇文章主要给大家介绍了关于vue中el-tree动态初始默认选中和全选实现的相关资料,eltree默认选中eltree是一种常用的树形控件,通常用于在网页上呈现树形结构的数据,例如文件夹、目录、组织结构等,需要的朋友可以参考下
    2023-09-09
  • vue如何定义全局变量和全局方法实例代码

    vue如何定义全局变量和全局方法实例代码

    在项目中经常会复用一些变量和函数,比如用户的登录token,用户信息等,这时将它们设为全局的就显得很重要了,下面这篇文章主要给大家介绍了关于vue如何定义全局变量和全局方法的相关资料,需要的朋友可以参考下
    2023-04-04
  • vue初尝试--项目结构(推荐)

    vue初尝试--项目结构(推荐)

    这篇文章主要介绍了vue初尝试--项目结构的相关知识,需要的朋友可以参考下
    2018-01-01
  • uniapp+vue3路由跳转传参的实现

    uniapp+vue3路由跳转传参的实现

    本文主要介绍了uniapp+vue3路由跳转传参的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • vue中watch的用法汇总

    vue中watch的用法汇总

    这篇文章主要介绍了vue中watch的用法汇总,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-12-12
  • Vue组件之间数据共享浅析

    Vue组件之间数据共享浅析

    本文章向大家介绍vue组件中的数据共享,主要包括vue组件中的数据共享使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下
    2022-11-11
  • vue.js项目中实用的小技巧汇总

    vue.js项目中实用的小技巧汇总

    这篇文章主要给大家介绍了关于vue.js项目中实用的小技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • VueJs组件prop验证简单介绍

    VueJs组件prop验证简单介绍

    今天看了vuejs的组件,看到了prop组件,主要作用是在传入数据的时候对传入的值做判断,今天小编通过一个小例子给大家分享VueJs组件prop验证简单理解,感兴趣的朋友一起看看吧
    2017-09-09
  • 一篇文章带你彻底搞懂VUE响应式原理

    一篇文章带你彻底搞懂VUE响应式原理

    这篇文章主要介绍了一篇文章带你彻底搞懂VUE响应式原理,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可任意参考一下,需要的朋友可以参考下
    2022-06-06
  • Vue-CLI 3.X 部署项目至生产服务器的方法

    Vue-CLI 3.X 部署项目至生产服务器的方法

    这篇文章主要介绍了Vue-CLI 3.X 部署项目至生产服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论