vue-cli-service build 环境设置方式

 更新时间:2023年01月11日 09:53:13   作者:lambertLin  
这篇文章主要介绍了vue-cli-service build 环境设置方式,具有很好的参考价值,希望对大家有所帮助。

vue-cli-service build 环境设置

使用vue-cli3打包项目,通过配置不同的指令给项目设置不一样的配置。

  • npm run serve 时会把process.env.NODE_ENV设置为‘development’;
  • npm run build 时会把process.env.NODE_ENV设置为‘production’;

此时只要根据process.env.NODE_ENV设置不同请求url就可以很简单的区分出本地和线上环境。

头疼的是打包时线上环境可能分多种,比如测试环境和生产环境等等。

在vue-cli2中打包时可以修改 “build” 和 “config”中的文件来区分不同的线上环境

而vue-cli3号称0配置,无法直接修改打包文件,那么怎么区分不同的线上环境分别传入不一样的配置呢?

官网给我们做了简单介绍(vue-cli-service-build),但只解释了现有几个指令所匹配的模式,对于上面的需求显然无法满足。

如下提供一种解决方案

首先在package.json文件内添加测试环境和生产环境的打包指令:

"build-test": "vue-cli-service build --mode alpha",
"build-prod": "vue-cli-service build --mode prod",

在项目根目录添加两个文件

.env.alpha

NODE_ENV = 'production'
VUE_APP_BASE_URL = 'http://test.linbenjian.work'

.env.prod

NODE_ENV = 'production'
VUE_APP_BASE_URL = 'http://www.linbenjian.work'

在项目中使用参数:

import axios from 'axios'
let baseurl = process.env.VUE_APP_BASE_URL || 'http://localhost:9001'

注:

  • —mode后面添加test、production 等预留参数无效
  • 配置文件内,参数添加VUE_APP 可通过调试

vue-cli的vue-cli-service命令的默认环境

在运行或者打包Vue项目时,我们常用的命令是:npm run build,npm run serve等样式。其中build和serve是在vue项目的package.json中进行定义,是一个脚本。

例如:

{
  "name": "test02",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

在上面的脚本定义中,server、build等是可以按照自己的方式进行命名的,例如myserver、mybuild,对应的运行命令就是:

npm run mybuild
npm run myserve

上面的命令本质上是下面的命令,都可以在命令行方式下运行:

vue-cli-service serve
vue-cli-service build

运行截图如下:

下面讲一下vue-cli-service serve和vue-cli-service build的默认环境,因为曾经遇到出现一个问题:项目中有一个环境参数文件.env.development。在WebStorm中运行npm run serve,前后端是通的。

但是当运行npm run build打包部署到Apache Server中后,前后端是不通的。

检查后发现原因是上面两个命令默认的环境是不一样的,看下面两个运行截图就知道了:

第一个脚本默认对应的是development环境,第二个脚本默认对应的是production环境(没有对应的环境设置文件也不影响,有对应的环境设置文件就用文件里面设置的参数)。

如果不注意这点,就会出现部署后运行情况和没有部署运行情况不一致的情况,其背后的原因就是默认环境。

如何修改每个脚本对应的环境?非常简单,直接在package.json文件中修改。

将这个图与第二个图进行比较,环境参数已经发生改变。

环境设置文件的命名规范是:.env.xxx,XXX在上图中为development,一般有意义或者惯例的名字即可,右边–mode后面的参数名字需要与左边文件的XXX完全相同(可能有多个环境设置文件)。

某个脚本运行后,将会出现XXX的名字,例如上图的【 Building for development…】。

总结

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

相关文章

  • 浅谈Vue 函数式组件的使用技巧

    浅谈Vue 函数式组件的使用技巧

    这篇文章主要介绍了浅谈Vue 函数式组件的使用技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Mixin混入分发Vue组件可复用功能基础示例

    Mixin混入分发Vue组件可复用功能基础示例

    这篇文章主要为大家介绍了Mixin混入分发Vue组件可复用功能基础示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue2中使用axios的3种方法实例总结

    Vue2中使用axios的3种方法实例总结

    axios从功能上来说就是主要用于我们前端向后端发送请求,是基于http客户端的promise,面向浏览器和nodejs,下面这篇文章主要给大家介绍了关于Vue2中使用axios的3种方法,需要的朋友可以参考下
    2022-09-09
  • vue-cli+webpack在生成的项目中使用bootstrap实例代码

    vue-cli+webpack在生成的项目中使用bootstrap实例代码

    本篇文章主要介绍了vue-cli+webpack在生成的项目中使用bootstrap实例代码,具有一定的参考价值,有兴趣的可以了解一下
    2017-05-05
  • 全面解析vue router 基本使用(动态路由,嵌套路由)

    全面解析vue router 基本使用(动态路由,嵌套路由)

    路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。这篇文章主要介绍了vue router 基本使用 ,需要的朋友可以参考下
    2018-09-09
  • Vue不同项目之间传递、接收参数问题

    Vue不同项目之间传递、接收参数问题

    这篇文章主要介绍了Vue不同项目之间传递、接收参数问题,主要针对是登录操作,我们为了完成SSO(Single Sign On)的效果,认证和授权在UC完成,用户发起资源请求,服务网关会进行过滤,本文给大家介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Vue.js 2.5新特性介绍(推荐)

    Vue.js 2.5新特性介绍(推荐)

    Vue 2.5 Level E 已发布,在原来2.x的基础上做了很多相应改进和对 bug 的修复,目前 2.5 系列最新的版本为 2.5.2,本文给大家介绍vue 2.5 新特征,需要的朋友参考下吧
    2017-10-10
  • Vue混入使用和选项合并详解

    Vue混入使用和选项合并详解

    这篇文章主要介绍了Vue混入使用和选项合并,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-10-10
  • vue3解决各场景loading过度的五种方法

    vue3解决各场景loading过度的五种方法

    这篇文章主要为大家详细介绍了vue3中解决各场景loading过度的五种方法,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以学习一下
    2023-11-11
  • vue中监听input框获取焦点及失去焦点的问题

    vue中监听input框获取焦点及失去焦点的问题

    这篇文章主要介绍了vue中监听input框获取焦点,失去焦点的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论