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

news2025/1/19 10:30:01

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.coloradmin.cn/o/1165888.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python 数据挖掘库orange3 介绍

orange3 是一个非常适合初学者的data mining library. 它让使用者通过拖拽内置的组件来形成工作流。让你不需要写任何代码就可以体验到数据挖掘和可视化的魅力。 它的桌面如下,这里我创建了 3 个节点,分别是数据集、小提琴图,散点图 其中 …

数据结构与算法:使用数组模拟队列Java版

逻辑分析 代码实现 package com.haimeng.queue;import java.util.Scanner;public class ArrayQueueDemo {public static void main(String[] args) {//测试一把//创建一个队列ArrayQueue queue new ArrayQueue(3);char key ; //接收用户输入Scanner scanner new Scanner(S…

使用 Appilot 部署 Llama2,会聊天就行!

Walrus 是一款基于平台工程理念的应用管理平台,致力于解决应用交付领域的深切痛点。借助 Walrus 将云原生的能力和最佳实践扩展到非容器化环境,并支持任意应用形态统一编排部署,降低使用基础设施的复杂度,为研发和运维团队提供易用…

最常见的激活函数

文章目录 1. 激活函数2. Sigmoid函数3. RelU函数4. Softmax函数 1. 激活函数 1. 神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输入属性值直接传递给下一层(隐层或输…

软件开发项目文档系列之九如何撰写测试用例

目录 1 概述1.1 编写目的1.2 定义1.3 使用范围1.4 参考资料1.5 术语定义 2 测试用例2.1 功能测试2.1.1 用户登录功能2.1.2 商品搜索功能 2.2 性能测试2.2.1 网站响应时间2.2.2 并发用户测试 附件: 测试用例撰写的要素和注意事项附件1 测试用例要素附件2 测试用例的注…

全志XR806实现简单的家用环境监测传感器

XR806是一款支持WiFi和BLE的高集成度无线MCU芯片, 以其集成度高、硬件设计简单、BOM成本低、安全可靠等优点, 成为极客们进行小开发创作的首选. 恰好最近获得了XR806开发板的试用资格,因此决定基于此开发板制作一个简单的家用环境监测传感器. 1.功能介绍 作为一个环境监测传感…

在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程

在一个循环链队中只有尾指针(记为rear,结点结构为数据域data,指针域next),请给出这种队列的入队和出队操作实现过程 入队过程如下图: 先创一个结点,用于存储要插入的结点数据 然后就是老套路了…

开槌在即:陈可之油画|《我的星辰》

《我的星辰》 尺寸:46x46cm 陈可之2020年绘 “星辰大海,梦想自有梦想的力量,仰望在银河的想象,我们启航。”读着画名,凝视着画,脑海里回荡着《星辰大海》的旋律。油画《我的星辰》是陈可之先生“心宇宙”系…

React 项目结构小结

React 项目结构小结 简单的记录一下目前 React 项目用的依赖和实现 摸索了大半年了大概构建一套用起来还算轻松的体系……?基本上应该是说可以应对大部分的项目了 使用的依赖 目前项目还在 refactoring 的阶段,所以乱得很,这里是新建一个…

如何理解API?API 是如何工作的呢?

大家可能最近经常听到 API 这个概念,那什么是API,它又有什么特点和好处呢? wiki 百科镇楼 APIs are] a set of subroutine definitions, protocols, and tools for building application software. In general terms, it’s a set of clear…

ZKP10.2 Efficient Recursion via Statement Folding (Nova)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 10: Recursive SNARKs, Aggregation and Accumulation (Dan Boneh) 10.3 Efficient Recursion via Statement Folding: Nova, Supernova, and generalizations The difficulty with full recursion Prover P needs to build a…

严重的软件漏洞,你都知道和修复了吗?

有一些漏洞,影响深远而且影响重大。以下的严重软件漏洞,你都知道和修复了吗? 1. Log4Shell Log4Shell软件漏洞存在于Apache Log4j中,这种流行的Java日志框架被全球数千万人使用。 2021年11月,阿里云安全团队成员陈兆军发现了一个严重的代码漏洞。陈兆军最先注意到了Mi…

怎样提取视频提取的人声或伴奏?

有些小伙伴们进行音视频创作时,可能会需要提取音频的人声或者是伴奏。这里给大家推荐一个音分轨人声分离软件,支持一键提取音频人声和一键提取伴奏功能,可批量导入文件同步提取,简单高效,是音视频创作者的不二选择&…

分体式离子风刀和整体式离子风刀分别有哪些优缺点

离子风刀是一种利用高速旋转的离子风扇产生的离子风来清洁和干燥物体表面的设备。根据离子风扇的安装方式,离子风刀可以分为分体式离子风刀和整体式离子风刀。下面是它们各自的优缺点: 分体式离子风刀的优点: 安装方便:分体式离子…

首发scitb包,一个为制作统计表格而生的R包

目前,本人写的第3个R包scitb包已经正式在R语言官方CRAN上线,scitb包是一个为生成专业化统计表格而生的R包。 可以使用以下代码安装 install.packages("scitb")scitb包对我而言是个很重要的R包,我的很多想法需要靠它做平台来实现&a…

bean product not found within scope之解决方法

错误原因&#xff1a; 获取bean中的商品信息时报错 解决方法&#xff1a; 修改为下面代码即可&#xff1a; <jsp:useBean id"product" class"com.model.Product" scope"session"></jsp:useBean>

TP858 3BSE018138R1 具有高性能CPU的工业PC技术

TP858 3BSE018138R1 具有高性能CPU的工业PC技术 为了充分利用新电脑的扩展图形功能&#xff0c;如DirectX&#xff0c;Beckhoff Automation重新设计了TwinCAT automation软件套件中的Scope工具。这为TwinCAT用户在灵活的软件环境中提供了一系列令人印象深刻的测量技术。改进的…

泊车功能专题介绍 ————智能泊车辅助系统性能要求及试验方法(GB/T 41630-2022)

文章目录 术语系统状态转换及信息提示系统非激活状态停车位搜索状态泊车辅助状态系统退出条件系统故障响应 性能要求避撞要求挡位调整次数要求平行停车位&#xff08;空间车位&#xff09;结束位置垂直停车位&#xff08;空间车位&#xff09;结束位置平行停车位&#xff08;线…

C++标准模板(STL)- 类型支持 (类型属性,is_pod,is_trivially_copyable,is_standard_layout)

类型特性 类型特性定义一个编译时基于模板的结构&#xff0c;以查询或修改类型的属性。 试图特化定义于 <type_traits> 头文件的模板导致未定义行为&#xff0c;除了 std::common_type 可依照其所描述特化。 定义于<type_traits>头文件的模板可以用不完整类型实例…

Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库

背景介绍 Apache Doris是一个基于MPP架构的易于使用&#xff0c;高性能和实时的分析数据库&#xff0c;以其极高的速度和易用性而闻名。海量数据下返回查询结果仅需亚秒级响应时间&#xff0c;不仅可以支持高并发点查询场景&#xff0c;还可以支持高通量复杂分析场景。 这些都…