VueJs各个版本— 判断当前是开发、生产环境

VueJs各个版本— 判断当前是开发、生产环境

文章目录

  • VueJs各个版本— 判断当前是开发、生产环境
    • vue项目分类
    • VueCLI2
      • 1,判断样例
      • 2,判断原理
    • Vue CLI 3 和 Vue CLI 4
    • 1,判断样例
    • 2, 判断原理
      • 手动设置-json文件
      • 手动设置- .env 文件
        • 单个 .env 文件
        • 多个 .env 文件

vue项目分类

现存的vue项目可分为

  • VueCLI2 创建的项目

  • Vue CLI 3 和 Vue CLI 4 创建的项目

下面就讲讲各个环境创建下的开发和生产环境如何判断。

VueCLI2

在 Vue CLI 2 中,完整的目录结构如下所示:

- my-project/|- build/               # 构建相关的配置文件|   |- build.js         # 构建的入口文件|   |- check-versions.js # 检查版本的脚本|   |- utils.js         # 构建工具函数|   |- vue-loader.conf.js # Vue Loader 的配置文件|   |- webpack.base.conf.js # 基础的 Webpack 配置文件|   |- webpack.dev.conf.js # 开发环境的 Webpack 配置文件|   |- webpack.prod.conf.js # 生产环境的 Webpack 配置文件|- config/              # 配置文件|   |- dev.env.js       # 开发环境的配置|   |- index.js         # 主要的配置文件|   |- prod.env.js      # 生产环境的配置|- node_modules/        # 项目依赖的第三方模块|- src/                 # 源代码目录|   |- assets/          # 静态资源文件(图片、样式等)|   |- components/      # 组件文件|   |- router/          # 路由配置文件|   |- views/           # 视图文件|   |- App.vue          # 根组件|   |- main.js          # 入口文件|- static/              # 静态资源文件(不会被 webpack 处理)|- test/                # 测试文件|- .babelrc             # Babel 配置文件|- .editorconfig        # 编辑器配置文件|- .eslintignore        # ESLint 忽略配置文件|- .eslintrc.js         # ESLint 配置文件|- .gitignore           # Git 忽略配置文件|- index.html           # HTML 模板文件|- package.json         # 项目配置文件|- README.md            # 项目说明文件

1,判断样例

(1)有时我们需要在代码中判断目前项目是处于开发环境、还是生产环境,然后根据不同环境执行不同的逻辑代码。下面是一个简单的样例:

if (process.env.NODE_ENV === "development") {alert("开发环境");
}else {alert("生产环境");
}

(2)如果在开发环境(执行 npm run dev 的时候),则显示如下结果:

在这里插入图片描述

(3)如果在生产环境(执行 npm run build 的时候),则显示如下结果:
在这里插入图片描述

2,判断原理

(1)在项目的 config 文件夹下有 dev.env.js 和 prod.env.js 两个文件,它们分别配置开发环境的变量和生产环境的变量。

  |- config/              # 配置文件|   |- dev.env.js       # 开发环境的配置|   |- index.js         # 主要的配置文件|   |- prod.env.js      # 生产环境的配置

(2)打开 dev.env.js 文件,可以看到 NODE_ENV 变量值为 development。

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')module.exports = merge(prodEnv, {NODE_ENV: '"development"'
})

(3)打开 prod.env.js 文件,可以看到 NODE_ENV 变量值为 production。

'use strict'
module.exports = {NODE_ENV: '"production"'
}

Vue CLI 3 和 Vue CLI 4

在 Vue CLI 3 和 Vue CLI 4 中,目录结构基本上是相同的

- my-project/|- public/              # 静态资源文件(不会被 webpack 处理)|- src/                 # 源代码目录|   |- assets/          # 静态资源文件(图片、样式等)|   |- components/      # 组件文件|   |- router/          # 路由配置文件|   |- views/           # 视图文件|   |- App.vue          # 根组件|   |- main.js          # 入口文件|- tests/               # 测试文件|- .browserslistrc      # 浏览器兼容性配置文件|- .eslintrc.js         # ESLint 配置文件|- babel.config.js      # Babel 配置文件|- package.json         # 项目配置文件|- README.md            # 项目说明文件

1,判断样例

在 Vue CLI 3 中,可以通过 process.env.NODE_ENV 来判断当前的环境是开发环境还是生产环境。

在开发环境中,process.env.NODE_ENV 的值会被设置为 'development'。你可以在代码中使用条件语句来根据当前环境执行不同的逻辑,例如:

if (process.env.NODE_ENV === 'development') {// 在开发环境中执行的逻辑
} else {// 在生产环境中执行的逻辑
}

在生产环境中,process.env.NODE_ENV 的值会被设置为 'production'。你可以根据需要在不同的环境中执行不同的代码,例如在开发环境中启用调试工具或者在生产环境中进行代码优化。

2, 判断原理

需要注意的是,process.env.NODE_ENV 的值是在构建过程中由 Vue CLI 自动生成的,你不需要手动设置它。在开发环境中,你可以通过 npm run serve 启动开发服务器,而在生产环境中,你可以通过 npm run build 构建项目。在构建过程中,Vue CLI 会自动设置 process.env.NODE_ENV 的值。

手动设置-json文件

在项目根目录下的 package.json 文件中,有一个 scripts 字段,其中定义了一些脚本命令。你可以在这些脚本命令中设置 NODE_ENV 环境变量。

"scripts": {"build:prod": "cross-env NODE_ENV=production vue-cli-service build"
}

手动设置- .env 文件

单个 .env 文件

项目的根目录下,创建一个名为 .env 的文件,并在其中设置环境变量

NODE_ENV=production

需要注意的是,.env 文件中定义的环境变量会被自动注入到构建过程中。在开发环境中,.env 文件中的变量会被注入到 process.env 对象中,而在生产环境中,这些变量会被用于构建过程。

多个 .env 文件

如果你想在不同的环境中使用不同的 .env 文件,可以创建多个 .env 文件,例如 .env.development.env.production,然后在对应的环境中使用不同的文件。Vue CLI 会根据当前的环境自动加载对应的 .env 文件。

.env.development

NODE_ENV=development

.env.production

NODE_ENV=production

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/180487.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot-SpringCache缓存

文章目录 Spring Cache 介绍常用注解 Spring Cache 介绍 Spring Cache 是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。 Spring Cache 提供了一层抽象,底层可以切换不同的缓存实现,…

shell脚本代码混淆

文章目录 起因安装 Bashfuscator安装BashfuscatorBashfuscator的使用 起因 很多时候我并不希望自己的shell脚本被别人看到,于是我在想有没有什么玩意可以把代码加密而又正常执行,于是我想到了代码混淆,简单来看一下: 现在我的目…

JavaEE平台技术——预备知识(Maven、Docker)

JavaEE平台技术——预备知识(Maven、Docker) 1. Maven2. Docker 在观看这个之前,大家请查阅前序内容。 😀JavaEE的渊源 😀😀JavaEE平台技术——预备知识(Web、Sevlet、Tomcat) 1. M…

Git 内容学习

一、Git 的理解 Git是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS),用于对项目源代码进行管理和跟踪变更。分为两种类型的仓库:本地仓库和远程仓库。 二、Git 的工作流程 详解如下&#x…

高性能渲染——详解Html Canvas的优势与性能

本文由葡萄城技术团队原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 一、什么是Canvas 想必学习前端的同学们对Canvas 都不陌生,它是 HTML5 新增的“画布”元素&#x…

GPT引发智能AI时代潮流

最近GPT概念爆火,许多行业开始竞相发展AI ,工作就业也将面临跳转,目前测试就业形势就分为了两大类,一类是测试行业如功能、性能、自动化综合性人才就业技能需求,另一类便是AI测试行业的需求普遍增长,原本由…

一键混剪软件、根据模板批量剪辑、多种分割、多种合并、多种混剪、文案提取、文字转语音等

在这个短视频时代,视频剪辑已经成为了一个炙手可热的行业。但是,对于大多数人来说,视频剪辑是一项既复杂又繁琐的工作。不过,现在有了我们的新伙伴——视频闪闪,一键混剪软件,您将迎来全新的视频剪辑体验&a…

axios 实现请求重试

前景提要: ts 简易封装 axios,统一 API 实现在 config 中配置开关拦截器 请求重试的核心是可以重放请求,具体实现就是在 axios 中,拿到当前请求的 config 对象,再用 axios 实例,就能重放请求。 在无感刷新…

HCIA数据通信——路由协议

数据通信——网络层(OSPF基础特性)_咕噜跳的博客-CSDN博客 数据通信——网络层(RIP与BGP)_咕噜跳的博客-CSDN博客 上述是之前写的理论知识部分,懒得在实验中再次提及了。这次做RIP协议以及OSPF协议。不过RIP协议不常用…

Zabbix如何监控腾讯云NAT网关

1、NAT网关介绍 NAT 网关(NAT Gateway)是一种支持 IP 地址转换服务,提供网络地址转换能力,主要包括SNAT(Source Network Address Translation,源网络地址转换)和DNAT(Destination N…

通过在Z平面放置零极点的来设计数字滤波器

文章来源地址:https://www.yii666.com/blog/393376.html 通过在Z平面放置零极点的来设计数字滤波器 要求:设计一款高通滤波器,用在音频信号处理过程中,滤掉100Hz以下的信号。 实现方法:通过在Z平面放置零极点的来设…

由于flutter_app依赖于flutter_swiper>=0.0.2,不支持零安全,版本解决失败。

参考 dart3.0使用flutter_swiper报错记录 flutter_swiper package - All Versions从官网的信息可以看到 Dart3版本不兼容 最小兼容的Dart SDK版本需要2.0 Flutter SDK 版本列表Flutter SDK 版本列表 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 说明:因…

青翼科技-国产化ARM系列TES720D-KIT

板卡概述 TES720D-KIT是专门针对我司TES720D(基于复旦微FMQL20S400的全国产化ARM核心板)的一套开发套件,它包含1个TES720D核心板,加上一个TES720D-EXT扩展底板。 FMQL20S400是复旦微电子研制的全可编程融合芯片,在单…

Envoy XDS协议学习

Envoy xds学习 资料地址 envoy官网资料连接 接口说明 xds分为增量接口和全量接口SotW:state of the world 即全量的数据Incremental: 增量的数据 具体接口 Listener: Listener Discovery Service (LDS) SotW: ListenerDiscoveryService.StreamList…

第9章_子查询

文章目录 1 需求分析与问题解决1.1 实际问题1.2 子查询的基本使用1.3 子查询的分类1.3.1 分类方式11.3.2 分类方式2 1.4 演示代码 2 单行子查询2.1 单行比较操作符2.2 代码示例2.3 HAVING中的子查询2.4 CASE中的子查询2.5 子查询中的空值问题2.6 非法使用子查询演示代码 3 多行…

06.Oracle数据备份与恢复

Oracle数据备份与恢复 一、通过RMAN方式备份二、使用emp/imp和expdb/impdb工具进行备份和恢复三、使用Data guard进行备份与恢复 一、通过RMAN方式备份 通过 RMAN(Oracle 数据库备份和恢复管理器)方式备份 Oracle 数据库,可以使用以下步骤&a…

docker部署elk

目录 前言 一、创建程序工作路径 二、创建私有网络 三、部署elasticsearch 1.先搜速后下载 2.创建一个基础的容器(此步骤是为了拷贝容器里的文件) 3.拷贝文件到宿主机 3.1进入容器 3.2拷贝并授权 3.3删除基础容器 4.创建容器 5.访问9200测试 …

Vue3项目嵌套企业微信扫码登录

企业微信登录流程 企业微信提供了OAuth的授权登录方式,可以让从企业微信终端打开的网页获取成员的身份信息,从而免去登录的环节。 整个流程采用的是OAuth2,流程如下: 前端操作思路 配置一些参数,渲染登录模板也就是…

【数据结构】冒泡排序 (码源实现)

冒泡排序 前言一、冒泡排序运行图例二、算法实现基本思路三、算法实现步骤四、算法码源详解五、冒泡排序效率分析(一)时间复杂度——O(N^2)(二)空间复杂度——O(1)(三&am…

虚拟机创建与连接的详细步骤

文章目录 什么是虚拟机?步骤1: 选择虚拟化软件1.1 VirtualBox1.2 VMware Workstation1.3 VMware Player1.4 Hyper-V 步骤2: 创建虚拟机2.1 打开虚拟化软件2.2 创建新虚拟机2.3 配置虚拟机2.4 安装操作系统2.5 启动虚拟机 步骤3: 连接虚拟机3.1 图形用户界面 (GUI)3.…