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.hqwc.cn/news/161739.html

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

相关文章

雨水收集设施模块把雨水收集起来,经简单处理用于消防洗车冲厕等

雨水收集设施模块是一种利用雨水资源的环保设施,它可以将雨水收集起来,经过简单的处理后,用于消防、洗车、冲厕等用途。 雨水收集设施模块通常由多个雨水收集器组成,每个收集器都有一个集水口和一个小型储水池。当雨水流入集水口…

crond服务

目录 一、crond服务基础知识 1、crond服务介绍 2、查看crond服务的状态 3、crond服务配置文件详解 4、额外的配置文件目录 二、crond服务基础命令 1、crond服务使用 2、 管理和操作 crond 服务 3、crond服务命令举例 一、crond服务基础知识 1、crond服务介绍 1、crond…

网易按照作者批量采集新闻资讯软件说明文档

大家好,我是淘小白~ 今天给大家介绍的爬虫软件是网易按照作者采集的软件 1、软件语言: Python 2、使用到的工具 Python selenium库、谷歌浏览器、谷歌浏览器驱动 3、文件说明: 4、配置文件说明: 5、环境配置 安装Python&am…

GraphQL入门与开源的GraphQL引擎Hasura体验

背景 Hasura 是一个开源的 GraphQL 引擎,它可以帮助开发人员快速构建和部署现代应用程序的后端。它提供了一个自动化的 GraphQL API ,可以直接连接到现有的数据库,并提供实时数据推送和订阅功能。 Hasura 团队总部位于印度。 下载安装 脚本…

YoloV8目标检测与实例分割——目标检测onnx模型推理

一、模型转换 1.onnxruntime ONNX Runtime(ONNX Runtime或ORT)是一个开源的高性能推理引擎,用于部署和运行机器学习模型。它的设计目标是优化执行使用Open Neural Network Exchange(ONNX)格式定义的模型,…

集线器、交换机、网桥、路由器、网关

目录 集线器(HUB)交换机(SWITCH)网桥(BRIDGE)路由器(ROUTER)网关(GATEWAY)交换机和路由器的区别参考 集线器(HUB) 功能 集线器对数据的传输起到同步、放大和整形的作用 属于物理层设备 工作机制 使用集线器互连而成的以太网被称为共享式以太网。当某个主机要给另一个主机发送单…

Python模块psutil:系统进程管理与Selenium效率提升的完美结合

前言 在前面编写一个Selenium的自动化程序时候,发现一个问题。 因笔记本配置较为差,所以每次初始化Selenium的WebDriver都会非常慢,整个等待过程是不友好的。 所以我就想到: 在程序中初始化一个全局的WebDriver对象&#xff0c…

【JMeter】后置处理器的分类以及场景介绍

1.常用后置处理器的分类 Json提取器 针对响应体的返回结果是json格式的会自动生成新的变量名为【提取器中变量名_MatchNr】,取到的个数由jsonpath expression取到的个数决定 可以当作普通变量调用,调用语法:${提取器中变量名_MatchNr}正则表达式提取器 返回结果是任何数据格…

Qt QtCreator添加自定义注释

在写代码的时候我们为了规范化,一般会加文件注释、类注释和函数注释;用注释来说明我们的代码,也方便模块化开发,那么我们在写注释的时候经常会写一些重复的内容,我们会复制粘贴。这样一来二去,就显得很繁琐…

论文阅读—— CEASC(cvpr2023)

arxiv:https://arxiv.org/abs/2303.14488 github:https://github.com/Cuogeihong/CEASC 为了进一步减轻SC中的信息损失,使训练过程更加稳定,我们在训练过程中除了稀疏卷积之外,还保持了正常的密集卷积,生成…

Iceberg教程

目录 教程来源于尚硅谷1. 简介1.1 概述1.2 特性 2. 存储结构2.1 数据文件(data files)2.2 表快照(Snapshot)2.3 清单列表(Manifest list)2.4 清单文件(Manifest file)2.5 查询流程分析 3. 与Flink集成3.1 环境准备3.1.1 安装Flink3.1.2 启动Sql-Client 3.2 语法 教程来源于尚硅…