vue-cli生成的项目,vue项目配置了不同开发环境的接口地址,axios.defaults.baseURL如何引用这个地址,这是在我发布项目的时候考虑的,于是想到了

方法一:

config下配置文件分别如下:

dev.env.js:

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env') module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
API_ROOT: '"//xxx.xxx.xxx.xxx:9001"'
})
prod.env.js 'use strict'
module.exports = {
NODE_ENV: '"production"',
API_ROOT: '"https://xxx.zzz.com"'
}

我在app.vue和main.js中试了以下方法,可以生效,但是因为在配置API_ROOT的时候里面地址带双引号,所以不能直接使用该接口地址,如果去掉API_ROOT中的双引号,打包的时候又会报错。

const config = require('../config')
import axios from 'axios';
if (process.env.NODE_ENV === 'development') {
axios.defaults.baseURL = config.dev.env.API_ROOT;
} else {
axios.defaults.baseURL = config.build.env.API_ROOT;
}

所以暂时没想到该怎么解决这个问题…………遂放弃方法一。

方法二:(集热心网友提供的方案)

一般项目webpack会有两个或多个配置文件,如:
webpack.prod.conf.js  对应线上打包
webpack.dev.conf.js   对应开发环境

使用webpack.DefinePlugin就可以

开发环境(webpack.dev.conf.js):

//开发环境下的baseURL
new webpack.DefinePlugin({
BASE_URL:"'xxxxxxxxx'"
})
线上环境(webpack.prod.conf.js): //线上环境下的baseURL
new webpack.DefinePlugin({
BASE_URL:"'xxxxxxxxx'"
})

我们只需要在入口文件中写上:axios.defaults.baseURL = BASE_URL;即可。

通过配置了DefinePlugin,那么这里面的标识就相当于全局变量,你的业务代码可以直接使用配置的标识。

注意:这里配置

BASE_URL
属性值的时候要单独给里面的值再加一个引号,否则输出的值不是字符串,所以会报错。

vue-cli生成的项目配置开发和生产环境不同的接口的更多相关文章

  1. https://www.cnblogs.com/beileixinqing/p/7724779.html vue-cli生成的项目配置开发和生产环境不同的接口 vue-cli生成的项目,vue项目配置了不同开发环境的接口地址,axios.defaults.baseURL如何引用这个地址,这是在我发布项目的时候考虑的,于是想到了

    方法二:(集热心网友提供的方案) 一般项目webpack会有两个或多个配置文件,如: webpack.prod.conf.js 对应线上打包 webpack.dev.conf.js 对应开发环境 使用 ...

  2. spring 项目分开发和生产环境

    1.pom 文件修改 <profile> <!-- 本地开发环境 --> <id>dev</id> <properties> <pro ...

  3. @vue/cli 3.x项目脚手架 webpack 配置

    @vue/cli  是一个基于 Vue.js 进行快速开发的完整系统. @vue/cli   基于node服务  需要8.9以上版本 可以使用 nvm等工具来控制node版本  构建于 webpack ...

  4. vue cli创建typescript项目

    使用最新的Vue CLI @vue/cli创建typescript项目,使用vue -V查看当前的vue cli版本 安装命令 npm install -g @vue-cli 创建项目 vue cre ...

  5. VUE cli 4.x下配置多页面以及同时配置支持element-ui及mint-ui并且优化首页文件大小。

    场景,公司的一个小型项目,需同时支持移动端和PC端.最开始考虑做两个独立的项目.但后来考虑到总共只有4个功能页面,布署起来相对麻烦.所以决定做在一个项目里. 1.升级vue-cli到4.x npm i ...

  6. vsCode怎么为一个前端项目配置ts的运行环境

    vsCode为一个前端项目配置ts的运行环境,ts文件保存的时候自动编译成js文件: 假设此前端项目名称为Web:文件结构如图 1. 在根目录中新建一个“.vscode”文件夹,里面建一个“tasks ...

  7. Node JS后端项目开发与生产环境总结

    原文地址:Node JS后端项目开发与生产环境总结 Node JS常用后端框架有express.koa.sails.国产框架有个egg js,已经在cnode投入生产了,还有个think js,类似t ...

  8. spring boot--日志、开发和生产环境切换、自定义配置(环境变量)

    Spring Boot日志常用配置: # 日志输出的地址:Spring Boot默认并没有进行文件输出,只在控制台中进行了打印 logging.file=/home/zhou # 日志级别 debug ...

  9. 从开发一款基于Vue技术栈的全栈热重载生产环境脚手架,我学到了什么

    浏览文章前 这一期,我分享给大家三点看源码的小技巧,这也是从别的大佬那总结的. 被反复使用的代码 这样的代码是一个软件的重点函数,一个大神的写法有很多精华值得学习. 穿越时间的代码 如果一段代码10年 ...

随机推荐

  1. java基础篇---正则表达式

    正则表达式在许多语言,例如Perl.PHP.Python.JavaScript和JScript,都支持用正则表达式处理文本,一些文本编辑器用正则表达式实现高级“搜索-替换”功能. 正则表达式是一种可以 ...

  2. [转]快速搞懂Gson的用法

    原文地址:http://coladesign.cn/fast-understand-the-usage-of-gson/ 谷歌gson这个Java类库可以把Java对象转换成JSON,也可以把JSON ...

  3. StreamingContext.getOrCreate

    /** */ object AppRealTime { def main(args: Array[String]): Unit = { ) { println("please input a ...

  4. knockout.js模板绑定之利用Underscore.js模板引擎示例

    View代码 <h1>People</h1> <ul data-bind="template: { name: 'peopleList' }"> ...

  5. Java编程的逻辑 (31) - 剖析Arrays

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  6. Java8中list转map

    第一种: 取list中某2个字段作为Map的K,V public Map<Long, String> getIdNameMap(List<Account> accounts) ...

  7. openCV—Python(5)—— 图像几何变换

    一.函数简单介绍 1.warpAffine-图像放射变换(平移.旋转.缩放) 函数原型:warpAffine(src, M, dsize, dst=None, flags=None, borderMo ...

  8. 在CentOS 6.4中支持exfat格式的U盘

    CentOS系列一直没有默认支持使用exfat格式的大容量U盘. 可以通过添加fuse-exfat模块来支持.根据网上资料,整理如下: 1.下载fuse-exfat支持软件: exfat支持是通过fu ...

  9. vim for python

    set encoding=utf8 set paste  编辑模式下的 复制粘贴 set expandtab  貌似是一个 tab 替换成4个空格, 而且当你使用 backspace(删除键), 会自 ...

  10. 解决java.lang.IllegalStateException: The application’s PagerAdapter changed the adapter’s content

    A界面中有viewpager的动态加载,从界面A跳到界面B,再finish掉B返回A时报出此异常. java.lang.IllegalStateException: The application's ...