#关于process.env.NODE_ENV 与 import.meta.env 相关了解
process.env.NODE_ENV
在前端 Vue 项目中非常重要,但它其实是个“假象”,在前端它并不是原生就有的变量。下面我从多个角度来给你通俗讲明白它的由来和使用方式 👇
🌐 一、process.env.NODE_ENV
是干嘛用的?
这是 一个环境变量,用于区分你的项目当前运行在什么模式下,比如:
值 | 含义 | 典型用途 |
---|---|---|
development | 开发模式(本地调试) | 显示调试信息,热更新 |
production | 生产模式(部署上线) | 开启压缩,关闭 debug 日志 |
test | 测试模式(自动化测试等) | 测试配置,mock 接口等 |
🧱 二、process
是哪里来的?浏览器有它吗?
❌ 浏览器中是 没有 process
对象 的!
process.env.NODE_ENV
是 Node.js 中的变量,前端之所以能用,是因为构建工具(比如 Vite / Webpack)在打包时自动替换了它。
✅ 所以:
process.env.NODE_ENV
是构建工具 在构建阶段 替换进去的一个“静态值”,不是浏览器里真的能访问的对象。
🛠️ 三、Vue 项目中怎么使用它?
✅ 使用方式(Vite、Webpack 都支持):
if (process.env.NODE_ENV === 'development') {console.log("开发模式:可以开启调试功能");
} else {console.log("生产模式:关闭调试功能");
}
⚠️ 这段代码在打包时会被“静态替换”成:
if ('production' === 'development') { ... } // 构建产物中就是字符串
🔧 四、它从哪里设置的?怎么指定值?
🧩 方式一:启动脚本中指定(推荐)
你的 package.json
中可能这样写:
"scripts": {"dev": "vite","build": "vite build","serve": "vite preview"
}
🔁 实际运行时:
vite
默认会把NODE_ENV
设置为development
vite build
默认设置为production
🧩 方式二:手动设置(适用于高级用法)
NODE_ENV=test vite
或者在 Windows:
set NODE_ENV=test && vite
🧬 五、Vite / Vue 项目中,还有哪些环境变量?
Vite 支持你在项目根目录放 .env
文件来定义自定义变量:
# .env.development
VITE_API_BASE=http://localhost:3000# .env.production
VITE_API_BASE=https://api.example.com
然后在代码中用:
console.log(import.meta.env.VITE_API_BASE)
> ✅ import.meta.env
是 Vite 的新写法,推荐用它来替代 process.env
!
🔁 总结一下(举一反三):
项目 | 说明 |
---|---|
process.env.NODE_ENV | 构建工具注入,用于区分 dev / prod / test 模式 |
process 对象来源 | Node.js 原生,前端项目是构建工具注入的 |
浏览器能否直接访问 | ❌不能,打包时会被静态替换 |
推荐做法 | 使用 import.meta.env (如果是 Vite 项目) |
是否可以自定义变量 | ✅ .env 文件 + VITE_ 前缀 |
🚨 一、直接使用 process.env.NODE_ENV
的问题
在 前端 JS(特别是 Vue 项目)中直接使用 process.env.NODE_ENV
爆红,通常是这两种情况导致的:
🔥 爆红的原因:
-
构建工具不支持
process.env
:
比如你用的是 Vite,它不再推荐使用process.env.NODE_ENV
,而是推荐用:import.meta.env.MODE
-
TypeScript 或 ESLint 报错:
如果你用的是 TypeScript 或 ESLint,它默认不知道process.env.NODE_ENV
存在,除非你手动声明(不推荐这么做)。
✅ 正确写法(基于构建工具)
🔹 如果你用的是 Vite(Vue 3 默认):
🔄 ✅ 替换为:
if (import.meta.env.MODE === 'development') {console.log('开发模式');
}
或者你在 .env.development
中设置了:
VITE_DEBUG=true
就可以用:
if (import.meta.env.VITE_DEBUG === 'true') {console.log('调试中...');
}
🔹 如果你用的是 Webpack(Vue 2 项目常见):
可以使用:
if (process.env.NODE_ENV === 'development') {console.log('开发模式');
}
但要注意两件事:
- 确保 Webpack 的 DefinePlugin 正确配置了环境变量:
plugins: [new webpack.DefinePlugin({'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)})
]
- Vite 没有
process
对象! 所以 不要在 Vite 项目中用它!
🛠️ 如何修复你的“爆红”问题?
🎯 你应该用的是 Vite + Vue 3 项目
那你改成下面这样写就对了:
if (import.meta.env.MODE === 'development') {console.log('当前是开发环境');
} else {console.log('当前是生产环境');
}
📦 补充:Vite 中常见的环境变量有这些:
变量名 | 说明 |
---|---|
import.meta.env.MODE | 当前模式(development / production) |
import.meta.env.BASE_URL | 基础路径 |
import.meta.env.PROD | 是否生产模式 |
import.meta.env.DEV | 是否开发模式 |
import.meta.env.VITE_XXX | 你自己定义的变量 |
🧪 举一反三:
你想根据环境加载不同的 API 地址?
const baseURL = import.meta.env.MODE === 'development'? 'http://localhost:3000': 'https://api.xxx.com';
你想开启某个调试组件?
if (import.meta.env.VITE_SHOW_DEBUG_PANEL === 'true') {// 显示调试工具
}
在 Vue 项目中(特别是 Vite 构建的项目),自定义环境变量配置 是前后端开发中常见的需求,比如你想配置:
- API 地址
- 是否开启调试模式
- 第三方服务的密钥等
✅ 一步一步:自定义 & 读取环境变量
🧩 第一步:在项目根目录新建 .env
文件
你可以创建多个环境配置文件,对应不同模式:
文件名 | 含义 |
---|---|
.env | 所有模式都生效 |
.env.development | 仅开发模式生效(npm run dev ) |
.env.production | 仅生产模式生效(npm run build ) |
📦 示例 .env.development
文件
# 注意:变量名必须以 VITE_ 开头
VITE_API_URL=http://localhost:3000/api
VITE_DEBUG=true
VITE_TITLE=🌟莉莉的前端实验室
🧑💻 第二步:在代码中读取这些变量
你在 Vue 项目中,可以直接这样写:
console.log(import.meta.env.VITE_API_URL); // 输出 http://localhost:3000/api
console.log(import.meta.env.VITE_DEBUG); // 输出 "true"
console.log(import.meta.env.VITE_TITLE); // 输出 🌟莉莉的前端实验室
⚠️ 注意:所有自定义变量名必须以
VITE_
开头,否则不会被暴露到客户端!
🔧 第三步:使用变量控制程序行为(举例)
const apiBase = import.meta.env.VITE_API_URL;if (import.meta.env.VITE_DEBUG === 'true') {console.log("🔍 进入调试模式!");
}
🔐 补充:Vite 是怎么加载这些变量的?
Vite
会在构建时将.env.*
文件中的变量解析成import.meta.env
对象注入代码中。- 编译后这些变量是静态值(不是运行时的
process.env
)。
📌 举一反三场景建议
场景 | 变量名 |
---|---|
API 接口地址 | VITE_API_URL |
是否开启 mock 数据 | VITE_USE_MOCK |
项目版本号 | VITE_APP_VERSION |
日志级别 | VITE_LOG_LEVEL |
启用某个组件开关 | VITE_FEATURE_XXX |
🛠️ 常见坑提醒
-
.env
文件不能加双引号,值会当字符串读,无需包裹:❌ VITE_DEBUG="true" ✅ VITE_DEBUG=true
-
使用布尔值时,读取出来都是字符串:
if (import.meta.env.VITE_DEBUG === 'true') // 正确!
-
修改
.env
文件后,需要 重启开发服务器:npm run dev
import.meta 对象的来源:
一般我们写的是:
import xxx from 'xxx'
那
import.meta.xxx
是什么?为什么import
后面可以接.meta
呢?
✅ 简短回答:
import.meta
不是你平时用的 import
语句,它是ES模块系统中提供的一个特殊对象,叫做 👉 Import Meta Object。这个是 语言级别(ES规范)原生支持的东西,不是语法糖、不是函数调用,也不是你能 import 出来的变量。
🔍 详细解析(建议收藏✨)
🧩 import
语句 vs import.meta
:
语法 | 含义 |
---|---|
import xxx from 'xxx' | ES Module 中用来导入模块(静态导入) |
import.meta | 一个内置的对象,表示当前模块的“元信息”对象 |
📘 语法对比:
// 这是导入模块:
import axios from "axios";// 这是访问当前模块元信息(不是导入!)
console.log(import.meta);
📦 import.meta
是什么?
根据 ECMAScript Module 规范:
import.meta
是 一个由 JS 引擎自动注入的对象,包含当前模块运行环境的元数据。
不同平台对它可以扩展内容:
- 浏览器原生提供的
import.meta.url
表示当前模块的路径。 - 构建工具如 Vite、Rollup、Webpack 可以扩展添加:
import.meta.env
(环境变量)import.meta.hot
(热更新)import.meta.glob
(动态导入多个文件)
📌 一个对比说明更直观:
功能 | 示例代码 | 用途 |
---|---|---|
导入模块 | import Vue from 'vue' | 使用第三方/本地模块 |
模块元信息 | console.log(import.meta.url) | 获取当前模块 URL |
环境变量(Vite 注入) | import.meta.env.VITE_DEBUG | 构建时注入环境变量 |
🧠 举一反三(怎么用)
💡 例子 1:获取当前模块路径(浏览器)
console.log(import.meta.url);
// 输出:file:///home/user/project/main.js
💡 例子 2:环境变量(Vite 专属)
if (import.meta.env.MODE === "development") {console.log("正在开发环境下运行!");
}
🧪 ⚠️ 注意事项:
import.meta
只能在 ES模块 中使用(.mjs
或通过模块化构建工具如 Vite/Webpack)。- 不能在 CommonJS (
require
) 模块中用。 import.meta
是一个对象,不是函数,不能写成import.meta()
❌。
✅ 总结一句话:
import.meta
是 ES 模块原生提供的“当前模块元信息对象”,不是 import 的内容,而是由浏览器或打包工具提供“扩展能力”的入口,像import.meta.env
就是 Vite 提供的构建时环境变量注入方式。
相关文章:
#关于process.env.NODE_ENV 与 import.meta.env 相关了解
process.env.NODE_ENV 在前端 Vue 项目中非常重要,但它其实是个“假象”,在前端它并不是原生就有的变量。下面我从多个角度来给你通俗讲明白它的由来和使用方式 👇 🌐 一、process.env.NODE_ENV 是干嘛用的? 这是 一个…...
R语言赋能气象水文科研:从多维数据处理到学术级可视化
全球气候变化加剧了极端天气与水文事件的复杂性,气象卫星、雷达、地面观测站及水文传感器每天产生TB级时空异质数据。传统研究常面临四大瓶颈: 数据清洗低效:缺失值、异常值处理耗时;时空分析模型构建复杂࿱…...
MySQL 约束(入门版)
目录 一、约束的基本概念 二、约束演示 三、外键约束 (一)介绍 (二)外键约束语法 (三)删除/更新行为 一、约束的基本概念 1、概念:约束是作用于表中字段上的规则,用于限制存储…...
【go】类型断言
接口-类型断言 Type Assertion Type Assertion(中文名叫:类型断言),通过它可以做到以下几件事情 检查 i 是否为 nil(是nil直接抛出panic)检查 i 存储的值是否为某个类型 具体的使用方式有两种ÿ…...
(复看)CExercise_06_1指针和数组_2 给定一个double数组,求平均值,并且返回
题目: 求平均值,给定一个double数组,求平均值,并且返回。 要求使用while循环遍历数组,然后配合"*p"的语法实现。 函数的声明如下: double get_ave(double *arr, int len); 关键点 分析࿱…...
Ubuntu 服务器上运行相关命令,关闭终端就停止服务,怎么才能启动后在后台运行?
环境: Ubuntu 20.04 LTS 问题描述: Ubuntu 服务器上运行相关命令,关闭终端就停止服务,怎么才能启动后在后台运行? bash docker/entrypoint.sh解决方案: bash docker/entrypoint.sh 脚本在后台运行&…...
ffmpeg提取字幕
使用ffmpeg -i test.mkv 获取视频文件的字幕流信息如下 Stream #0:4(chi): Subtitle: subrip (srt) (default) Metadata: title : chs Stream #0:5(chi): Subtitle: subrip (srt) Metadata: title : cht Stream #0:6(jpn)…...
深入理解Socket编程:构建简单的计算器服务器
一、Socket通信基础 1. Socket通信基本流程 服务器端流程: 创建Socket (socket()) 绑定地址和端口 (bind()) 监听连接 (listen()) 接受连接 (accept()) 数据通信 (read()/write()) 关闭连接 (close()) 客户端流程: 创建Socket (socket()) 连接…...
CPU狂飙900%,该怎么处理
首先,说明一下问题:CPU飙升200% 以上是生产容易发生的场景 场景:1:MySQL进程飙升900% 大家在使用MySQL过程,想必都有遇到过CPU突然过高,或者达到200%以上的情况。 数据库执行查询或数据修改操作时,系统需…...
C++继承完全指南:从语法到设计模式----图解原理+工业级代码示例+陷阱规避
🔮✨⚡️🌌 欢迎来到张有志的量子编程次元 🌌⚡️✨🔮 ▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂ 🛸 核心探索舱 🛸 ⇩⇩⇩ 正在加载未来代码 ⇩⇩⇩ ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔…...
使用Pholcus编写Go爬虫示例
想用Pholcus库来写一个Go的爬虫程序。首先,我得确认Pholcus的当前状态,因为之前听说过它可能已经不再维护了。不过用户可能还是需要基于这个库的示例,所以得先提供一个基本的框架。 首先,我应该回忆一下Pholcus的基本用法。Pholc…...
R Excel 文件:高效数据处理与可视化工具的完美结合
R Excel 文件:高效数据处理与可视化工具的完美结合 引言 在数据分析和处理领域,R语言因其强大的数据处理能力和丰富的可视化功能而备受青睐。而Excel作为最常用的电子表格软件,其广泛的应用也使得R与Excel的结合成为数据处理与可视化的理想…...
Python设计模式:适配模式
1. 适配模式(Adapter Pattern)详解 适配模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一种接口。适配模式使得原本由于接口不兼容而无法一起工作的类可以协同工作。换句话说…...
Python设计模式:策略模式
1. 什么是策略模式 策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,并使它们可以互换。策略模式使得算法的变化独立于使用算法的客户。换句话说,策略模式允许在运…...
Unity Internal-ScreenSpaceShadows 分析
一、代码结构 // Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)Shader "Hidden/Internal-ScreenSpaceShadows" {Properties {_ShadowMapTexture ("", any) "" {} // 阴影贴图纹理&…...
nginx配置oss代理
工作中会有一些时候需要将图片,视频,音频等文件放到oss这种对象存储中进行存储,实现高性能的访问,这种情况叫做动静分离.这里只做了图片的配置,视频以及音频的配置是一样的. 以下是nginx.conf的配置信息,其中还有ssl的加密配置,以及后端服务器的代理模块配置,(这里不用的话可以…...
UML对象图
UML对象图 一、对象图核心概念 对象图(Object Diagram)描述的是系统在某一时刻对象(实例)的状态快照。它关注的是实际对象之间的实例关系,而不是类与类之间的静态结构。主要特点有: 对象(Ob…...
手机不同App音量自动调节软件
软件介绍 在日常使用手机的过程中,大家是不是经常会遇到在不同App之间切换时,需要频繁调整音量的情况呢?这样真的很不方便。而一款名为App Volume Control的软件就能很好地解决这个问题。 App Volume Control借助辅助功能服务,能…...
模板方法模式详解
模板方法模式详解及真实场景解决方案 推荐学习完策略模式和模板方法模式看这个案例: 策略与模板方法模式组合详解 模式定义 模板方法模式是一种行为设计模式,在父类中定义算法的骨架,允许子类在不改变算法结构的情况下重写特定步骤。核心思…...
基于SSM邮件收发管理系统(带源码、论文)
摘要 随着互联网技术的迅速发展和普及,网络通信已经成了人们离不开的通信手段。作为最早出现的网络通信方式还有世界上应用最为广泛的网络服务之一,电子邮件综合了电话通信和传统邮件的特点,具有传播速度快、价格低廉的优良特性。随着技术发…...
1990-2019年各地级市GDP数据
1990-2019年各地级市GDP数据 1、时间:1990-2019年 2、来源:城市年鉴 3、指标:行政区划代码、年份、省份、城市、经度、纬度、地区生产总值(万元) 4、范围:250地级市 5、指标解释:地区生产总值(Gross R…...
Scala相关知识学习总结5
1、多维数组 定义: val arr Array.ofDim[Double](3,4) 表示二维数组中有三个一维数组,每个一维数组有四个元素。 2、列表 List 不可变 List:默认不可变,可创建有序且可重复的列表,可使用:从右向左增加数据…...
【LangChain Agent 】详解,构建自主决策的 LLM 应用
🐇明明跟你说过:个人主页 🏅个人专栏:《深度探秘:AI界的007》 🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、什么是 Lang Chain 2、什么是 Agent 二、LangChain …...
Scala基础知识7
一,可变数组和不可变数组的转换方法: 不可变数组转换为可变数组使用 toBuffer 函数. 可变数组转换为不可变数组使用 toArray 函数。 转换过程中原始数组不会发生变化,而是返回一个新的数组。 二,多维数组 使用 Array of 函数创建多维数组&am…...
vmware、centos: 快照、redis集群克隆、启动异常
问题描述 提示:这里描述项目中遇到的问题: 启动虚拟机报错: 指定的虚拟磁盘需要进行修复 打不开磁盘“D:\Virtual Machines\CentOS 7 64 位\CentOS 7 64 位-000001.vmdk”或它所依赖的某个快照磁盘。 模块“Disk”启动失败。 未能启动虚拟机…...
visual studio断点无法进入
问题背景: 使用VSQt进行编码,新增函数处断点无法进入。 问题排查 查看moc文件,汇编代码以及设置调试选项均不生效。 原因分析 之前无意间进行了排版优化,导致新增的代码未正常编译进去,通过“文件-> 高级保存选…...
CNVD-2025-06046:Google Chrome沙箱逃逸漏洞大揭秘与防护指南
CNVD-2025-06046:Google Chrome沙箱逃逸漏洞大揭秘与防护指南 前言:浏览器界的“越狱”事件 嘿,小伙伴们!今天咱们要聊的不是什么好莱坞大片,而是一出在浏览器世界里真实上演的“越狱”大戏!你没听错&…...
androd的XML页面 跳转 Compose Activity 卡顿问题
解决 XML 点击跳转到 Compose Activity 卡顿问题 当从 XML 布局的 Activity 跳转到 Compose Activity 时出现卡顿现象,这通常是由以下几个原因导致的: 可能的原因及解决方案 1. Compose 首次初始化开销 问题:Compose 框架首次初始化需要时…...
Springboot同时支持不同的数据库,Oracle,Postgresql
关键字 Java,Springboot,Vscode,支持多种数据库 背景环境 我在实际项目开发工程中遇到这样一个问题,用户 A 使用 Oracle 数据库,用户 B 使用 Postgresql 数据库,但是用户 AB 都使用我们的项目。所以项目…...
【计网】TCP协议的拥塞控制与流量控制
拥塞控制与流量控制的区别 流量控制 流量控制主要是控制端到端(发送端和接收端)之间的数据传输量,是局部的机制。 目的:防止发送方发送数据过快导致接收方来不及处理实现方式:通过滑动窗口机制,接收方通…...
Redis - 字典(Hash)结构和 rehash 机制
字典结构 Redis中的字典由dict.h/dict结构表示: typedef struct dict ( //类型特定函数dictType *type;//私有数据 void "privdata;//哈希表 dictht ht[2];//rehash索引 //当rehash不在进行时,值为-1 in trehashidx; } dict; Redis字典所使用的哈希表由dict.h/dictht 结…...
Redis 与 MongoDB 对比分析
Redis 与 MongoDB 对比分析 1. 核心定位 Redis:内存键值数据库,侧重高性能读写和低延迟,常用于缓存、实时分析、消息队列等场景。MongoDB:分布式文档型数据库,侧重灵活的数据模型和大规模数据存储,支持复…...
【愚公系列】《高效使用DeepSeek》058-选题策划
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! 👉 江湖人称"愚公搬代码",用七年如一日的精神深耕技术领域,以"…...
解决 Lettuce 在 Redis 集群模式下的故障转移问题
引言 在高可用系统中,故障转移是确保服务不中断的重要机制。当我们使用 Lettuce 作为 Redis 的 Java 客户端时,如何高效地处理故障转移成为一项关键任务。本篇文章将探讨如何在 Redis 集群模式下配置 Lettuce 以优化故障转移。 背景 在初期设置 Lettu…...
Vim搜索和替换
模式 命令模式 操作过程 键入/开始搜索,找到想要搜索的内容后直接回车,此时光标会从搜索框回到编辑器中。 之后可以 使用小写n跳到下一个符合条件的内容,使用大写N跳到上一个搜索的内容。也可以直接使用上下左右按钮调整光标位置。...
【探商宝】 Llama 4--技术突破与争议并存的开源多模态
核心亮点 混合专家架构(MoE)的全面应用 Llama 4 是 Meta 首个全系列采用 MoE 架构 的模型,通过稀疏激活机制显著提升效率。例如: Llama 4 Scout(中杯):16 位专家,17B 活跃参数&#…...
可发1区的超级创新思路(python 实现):一种轻量化的动态稀疏门控网络
首先声明,该模型为原创!原创!原创!且该思路还未有成果发表,感兴趣的小伙伴可以借鉴! 一、应用领域 视频异常检测、生成视频检测。 二、模型解析 该模型由1.关键帧动态选择机制、2.关键帧动态选择机制以及3.关键帧动态选择机制三大核心组件构成,形成端到端的视频异常…...
flink cdc的source数据流如何配置事件时间,如何设置时间语义,分配时间戳并生成水位线
在 Flink CDC 中为 Source 数据流配置事件时间需要结合时间语义设置、时间戳分配和水位线生成三个核心步骤。以下是具体配置方法及注意事项: 1. 设置时间语义 Flink 默认使用处理时间(Processing Time),需显式指定事件时间语义&a…...
Vue3:初识Vue,Vite服务器别名及其代理配置
一、创建一个Vue3项目 创建Vue3项目默认使用Vite作为现代的构建工具,以下指令本质也是通过下载create-vue来构建项目。 基于NodeJs版本大于等于18.3,使用命令行进行操作。 1、命令执行 npm create vuelatest输入项目名称 2、选择附加功能 选择要包含的功…...
医疗场景与事件驱动的高匹配颗粒度医疗智能体研发方向探析(代码版)
结合技术实现、应用场景与挑战展开分析: 一、医疗场景驱动的智能体核心方向 全场景覆盖的诊疗辅助医疗智能体系统编程方案 1.1、技术架构设计 #mermaid-svg-OKB0oAt38jXWNClG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#m…...
HTML5 浏览器兼容性:让旧浏览器也能拥抱 HTML5
在前端开发领域,HTML5 带来了一系列令人兴奋的新特性和功能,极大地提升了用户体验和开发效率。然而,由于互联网用户使用的浏览器版本千差万别,部分旧版本浏览器并不支持 HTML5,这给开发者带来了兼容性方面的挑战。不过…...
Kubernetes 集群搭建(三):使用dashboard用户界面(需要访问外网获取yaml)
(一)简介 K8s Dashboard是Kubernetes提供的一种基于Web的用户界面工具,用于可视化地管理和监控Kubernetes集群 主要功能: 资源查看与管理: 查看Kubernetes集群中的各种资源,如节点、Pod、服务、部署等。 对…...
【图像处理基石】什么是ISP色彩管理?
在ISP(Image Signal Processor,图像信号处理器)管线中,色彩管理是图像处理流程的核心环节,主要负责从传感器原始数据(RAW)到最终输出图像(如YUV、RGB或JPEG)的色彩转换、…...
金融维度下的公链价值重构:重塑财富新秩序
公链的引言: 众人对 Crypto、Token 的探讨热度居高不下。在此大背景下,我打算另辟蹊径,从金融维度重新剖析区块链分布式账本。那么,我们究竟该如何正确认知它?又该如何搭建起一套从金融视角出发的分析框架呢࿱…...
LeetCode算法题(Go语言实现)_34
题目 考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true&…...
# 项目部署指南:Flask、Gradio与Docker实现流程
Python项目部署指南:Flask、Gradio与Docker实践 1. 引言 在机器学习和Web开发中,将模型或应用部署为在线服务是关键一步。本文将介绍如何使用 Flask 和 Gradio 快速构建前端界面,并通过 Docker 容器化实现高效部署,涵盖完整流程图…...
2022第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组(题解解析)
记录刷题的过程、感悟、题解。 希望能帮到,那些与我一同前行的,来自远方的朋友😉 大纲: 1、九进制转十进制-(解析)-简单的进制转化问题😄 2、顺子日期-(解析)-考察日期 3…...
UML之序列图的参与者与生命线
序列图是建模过程中必选的一种描述行为的手段,它展示在某些有用的行为中元素之间的消息交换和相互作用。交互是构成行为的一个单元;这些元素必须是可连接元素,通常将这些可连接元素称为交互中的参与者(Participants)。…...
基于Python Flask快速构建网络安全工具资源库的Web应用实践
引言 在网络安全领域,信息收集(OSINT)是渗透测试、漏洞挖掘和威胁分析的关键环节。然而,面对海量工具和分散的技术文档,安全研究人员常需耗费大量时间查找和比对工具信息。本文将介绍如何利用 Python Flask HTML 技…...
xv6-labs-2024 lab1
lab-1 注:实验环境在我的汇编随手记的末尾部分有搭建教程。 0.前置 第零章 xv6为我们提供了多种系统调用,其中,exec将从某个文件里读取内存镜像(这确实是一个好的说法),并且将其替换到调用它的内存空间,也就是这个…...