当前位置: 首页 > news >正文

【Vue】Parsing error: No Babel config file detected for ... vue

报错


Parsing error: No Babel config file detected for E:\Study\Vue网站\实现防篡改的水印\demo02\src\App.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files.               eslint


背景

  • 开发环境:Windows
  • 开发IDE:Visual Studio Code 版本1.76.0
  • 开发项目:Vue3 - v3.2.13
  • 项目文件夹:E:\Study\Vue网站\实现防篡改的水印\demo02
  • VSCode 插件:ESLint v2.4.2
  • VSCode 打开文件夹:E:\Study\Vue网站\实现防篡改的水印
  • 报错代码:
    在这里插入图片描述

解决方案

方案一、卸载插件

此方法简单粗暴,插件提出问题,解决掉插件也就不会提出问题

方案二、重新打开文件夹

确保项目文件夹VSCode 打开文件夹是同一个文件夹。

原因

  1. package.json的配置文件中,配置eslintConfig\parserOptions\parser的解析器是@babel/eslint-parser
{"name": "demo01","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint"},"dependencies": {"core-js": "^3.8.3","vue": "^3.2.13"},"devDependencies": {"@babel/core": "^7.12.16","@babel/eslint-parser": "^7.12.16","@vue/cli-plugin-babel": "~5.0.0","@vue/cli-plugin-eslint": "~5.0.0","@vue/cli-service": "~5.0.0","eslint": "^7.32.0","eslint-plugin-vue": "^8.0.3"},"eslintConfig": {"root": true,"env": {"node": true},"extends": ["plugin:vue/vue3-essential","eslint:recommended"],"parserOptions": {"parser": "@babel/eslint-parser"},"rules": {}},"browserslist": ["> 1%","last 2 versions","not dead","not ie 11"]
}
  1. 根据Babel官方手册,Babel 默认从根目录下查找babel.config.js配置,如果打开的文件夹所在的第一级目录没有babel.config.js配置就会报此错。
    在这里插入图片描述

BABEL 配置文件

以下内容从BABEL 配置文件

配置文件类型

Babel 有两种并行的配置文件方式,可以一起使用,也可以单独使用。

▶历史

  • 项目范围的配置
    • babel.config.* 文件,可用如下不同扩展名: .json, .js, .cjs, .mjs
  • 相对文件的配置
    • .babelrc.* 文件,可用如下不同扩展名: .json, .js, .cjs, .mjs
    • 不带扩展名的 .babelrc。`
    • 带有 "babel"`` 属性的 package.json` 文件。

项目范围的配置

Babel 7.x 新版本中,Babel 有一个 "root" 目录的概念, 默认为当前的工作目录文件夹。 对于项目范围的配置,Babel 将在根目录中自动搜索 "babel.config.json" 文件, 或使用了 支持的扩展名 的等效文件。 另外,用户可以使用显式的 "configFile" 值覆盖默认的配置文件搜索行为。

因为项目范围的配置文件与配置文件的物理位置是分离的, 所以它们非常适合必须广泛应用的配置, 甚至允许插件和预设轻松地应用于 node_modules 或符号链接包中的文件, 这在 Babel 6.x 中通常是很难配置的。

项目范围配置的主要缺点是,因为它依赖于工作目录, 如果工作目录不是单体式仓库的根目录,那么在单体式仓库中使用它会更加痛苦。 有关如何在这种上下文中使用配置文件的示例,请参阅 单体式仓库 文档。

也可以通过将 "configFile" 设置为 false 来禁用项目范围的配置。

相对文件的配置

Babel 从正在编译(受以下警告限制)的 "filename" 开始搜索目录结构来加载 .babelrc.json 文件, 或使用了 支持的扩展名 的等效文件。 这种功能非常强大, 因为它允许你为子 package 创建独立的配置。 相对文件的配置可以设置 merged 使它们特定的配置覆盖项目范围的配置值, 尽管这也可以通过 "overrides" 来实现。

当使用相对文件的配置时,需要考虑一些边缘情况:

  • 一旦找到包含 package.json 的目录,搜索就会停止, 因此相对文件的配置仅适用于单个包。
  • 正在编译的 "filename" 必须在 "babelrcRoots" packages 中, 否则搜索将被完全跳过。
  • .babelrc.json 文件仅应用于它们自己包中的文件
  • .babelrc.json 文件将被忽略如果不在 Babel 的 “根” 包中, 除非你选择使用 "babelrcRoots"
    有关如何配置具有多个包的单体式仓库的更多讨论,请参阅 单体式仓库 文档。 还可以通过将 "babelrc" 设置为 false` 来禁用相对文件的配置。

6.x vs 7.x .babelrc 加载

来自 Babel 6.x 的用户可能会遇到这两个边缘情况,这是 Babel 7.x 中的新功能。 这两项限制是为了解决 Babel 6.x 中常见的 footguns 而增加的:

  • .babelrc 文件经常出乎意料地应用于 node_modules 依赖项。
  • .babelrc 文件 无法 应用于符号链接 node_modules,当人们期望它们表现得像正常的依赖时。
  • .babelrc 文件 在 node_modules 依赖关系中将被检测, 即使它们内部的插件和预设通常没有安装, 甚至可能在编译该文件的 Babel 版本中无效。
    这些情况主要会给使用单体式仓库结构的用户造成问题, 如果你有
.babelrc
packages/mod1/package.jsonsrc/index.jsmod2/package.jsonsrc/index.js

该配置现在将被完全忽略,因为它跨越了包边界。

一种替代方法是在每个子包中创建一个 .babelrc,将 "extends" 用作

{ "extends": "../../.babelrc" }

不幸的是,这种方法可能有点重复,根据 Babel 的使用方式, 可能需要设置 "babelrcRoots"

考虑到这一点,将 .babelrc 重命名为 项目范围的 "babel.config.json"可能更可取。 正如上面在项目范围部分提到的, 这可能需要显式设置 "configFile", 因为如果工作目录不正确,Babel 将找不到配置文件。

支持的文件扩展名

可以使用 Node.js 本地支持的任何文件扩展名配置 Babel,正如上面配置文件类型章节提到的一样:

babel.config.json.babelrc.json 被解析为 JSON5,并且应该包含一个 Babel 接受的选项格式匹配的对象。 它们从 v7.7.0 开始支持。

我们建议尽可能使用这种文件类型: 如果你的复杂配置有条件表达式或是在构建时计算的,JS 配置文件则非常方便。 然而,缺点是 JS 配置的静态可分析性较差, 因此对可缓存性、代码检测、IDE 自动完成等有负面影响。 由于 babel.config.json.babelrc.json 是静态 JSON 文件, 因此它允许其他使用 Babel 的工具,如绑定器,安全地缓存 Babel 的结果, 这可能会带来巨大的构建性能优势。

babel.config.cjs.babelrc.cjs 允许你使用 module.exports 将配置定义为 CommonJS。 它们从 v7.7.0 开始支持。

babel.config.mjs.babelrc.mjs 使用原生 ECMAScript 模块。它们在 Node.js 13.2+(或使用 --experimental-modules 标志的更早版本)被支持。 请记住,原生 ECMAScript 模块是异步的(这就是 import() 总是返回 promise 的原因!) 因此,同步调用 Babel 时将抛出 .mjs 配置文件。 它们从 v7.8.0 开始支持。

当你的 package.json 文件包含 "type": "module" 选项时, babel.config.js.babelrc.js 的行为类似 .mjs, 否则它们与 .cjs 文件完全相同。

JavaScript 配置文件可以导出一个对象,也可以导出一个函数, 当调用该函数时,该函数将返回生成的配置。 函数返回配置被赋予一些特殊功能,因为它们可以访问由 Babel 本身公开的 API。 有关更多信息,请参阅 配置函数 API

出于兼容性原因,.babelrc.babelrc.json 的别名。

单体式仓库

单体式结构的仓库通常包含许多包, 这意味着它们通常会遇到 相对文件的配置 和配置文件加载中提到的警告。 本节旨在帮助用户了解如何实现单体式仓库配置。

对于单体式仓库设置,需要理解的核心是 Babel 将你的工作目录作为其逻辑 "root", 如果你想要在特定的子包中运行 Babel 工具,而不希望 Babel 作为一个整体应用于仓库, 则会出现问题。

另外,确定是要使用 .babelrc.json 文件还是只使用中央的 babel.config.json 文件也很重要。 与 Babel 6 一样,子文件夹特定的配置不需要 .babelrc.json 文件, 因此在 Babel 7 中通常不需要这些文件, 而是使用 babel.config.json

babel.config.json 文件

任何单体式仓库结构的第一步都应该是在存储库根目录中创建一个 babel.config.json 文件。 这确立了 Babel 的核心概念,即仓库的基准目录。 即使你想用 .babelrc.json 文件来单独配置每个包, 将其作为仓库级别选项的位置也很重要。

你通常可以将所有仓库配置放在根 babel.config.json 中。 使用 "overrides", 你可以轻松定仅适用于仓库的特定子文件夹的配置, 这通常比在仓库中创建许多 .babelrc.json 文件更容易遵循。

您可能会遇到的第一个问题是,默认情况下, Babel 希望从 "root" 设置的目录加载 babel.config.json 文件, 这意味着如果你创建了一个 babel.config.json, 却在单个包中运行 Babel,例如:

cd packages/some-package;
babel src -d dist

在该上下文中 Babel 使用的 "root" 不是 你仓库的根目录, 它将无法找到 babel.config.json 文件。

如果你所有的构建脚本都是相对于你的仓库根目录运行的,那么应该已经可以工作了, 但是如果你是在子包中运行 Babel 编译过程, 那么你需要告诉 Babel 在哪里查找配置。有几种方法可以做到这一点, 但是推荐的方法是将 "rootMode" 选项设置为 "upward", 这将使 Babel 从工作目录向上搜索 babel.config.json 文件, 并使用其位置作为 "root" 的值。

测试你的配置是否被检测到的一个有用方法是, 如果配置是一个 babel.config.json JavaScript 文件,则在其中放置 console.log() 调用: 日志将在 Babel 第一次加载时执行。

设置这个值的方式因项目而异,但是这里有一些例子:

CLI

babel --root-mode upward src -d lib

@babel/register

require("@babel/register")({rootMode: "upward",
});

Webpack

module: {rules: [{loader: "babel-loader",options: {rootMode: "upward",},},];
}

Jest

Jest 通常安装在单体式仓库的根目录,可能不需要配置,但是如果它在每个包中都安装,配置起来可能会更加复杂。

主要部分是创建一个自定义 jest transformer 文件,该文件包装 babel-jest 的默认行为,以便设置选项,例如:

module.exports = require("babel-jest").default.createTransformer({rootMode: "upward",
});

将其保存在某个位置后,你可以在 Jest 选项中的 transform 选项 中使用处于 babel-jest 位置的这个文件:

"transform": {"^.+\\.jsx?$": "./path/to/wrapper.js"
},

因此所有的 JS 文件都将使用你指定的已启用该选项的 babel-jest 版本进行处理。

其他

注意:当使用 babel-jest 等版本时,你必须删除 .default 部分:require("babel-jest").createTransformer({ ...

有很多工具,但最核心的是,如果工作目录还不是单体式仓库的根目录,它们需要启用 rootMode 选项。

子包的 .babelrc.json 文件

类似于 babel.config.json 文件必须位于 "root" 中的方式, .babelrc.json文件必须位于根目录的 package 下。 这意味着,工作目录既会受载入的babel.config.json影响 ,也会受载入的.babelrc.json影响。

假设你已经像上面讨论的那样正确地加载了 babel.config.json 文件,Babel 将只处理根包(而不是子包)中的 .babelrc.json 文件,例如

package.json
babel.config.js
packages/mod/package.json.babelrc.jsonindex.js

编译 packages/mod/index.js 文件将不会加载 packages/mod/.babelrc.json 因为 .babelrc.json 位于子包,而不是根包中。

要启用对该 .babelrc.json 的处理,你需要在 babel.config.json 文件中使用 "babelrcRoots" 选项来执行以下操作

babelrcRoots: [".","packages/*",
],

因此 Babel 将认为所有匹配 packages/* 的包与原来的仓库根目录一起,都被允许加载 .babelrc.json 文件。

配置函数 API

JS 配置文件可以导出一个将传递配置函数 API 的函数:

module.exports = function(api) {return {};
};

api 对象与配置文件特定的 API 一起暴露了 Babel 本身暴露于其索引模块的所有内容:

api.version

类型:string

正在加载配置文件的 Babel 版本的版本字符串。

api.cache

JS 配置很棒,因为他们可以动态计算配置, 但缺点是它使缓存变得更加困难。Babel 希望避免每次编译文件时都重新执行配置函数, 因为这样还需要重新执行该配置中引用的所有插件和预设函数。

为了避免这种情况,Babel 希望用户在配置函数时告诉它如何管理配置文件中的缓存。

  • api.cache.forever() - Permacache 计算的配置,永远不再调用该函数。

  • api.cache.never() - 不要缓存此配置,并且每次都重新执行该功能。

  • api.cache.using(() => process.env.NODE_ENV) - 根据 NODE_ENV 的值缓存。 每次 using 回调返回的值都不是预期的值,总体而言 将再次调用 config 函数,并将新条目添加到缓存中。

  • api.cache.invalidate(() => process.env.NODE_ENV) - 根据 NODE_ENV 的值缓存。 每次 using 回调返回的值都不是预期的值,总体而言 将再次调用 config 函数,缓存中的所有条目将替换为结果。

  • api.cache(true) - 与 api.cache.forever() 相同

  • api.cache(false) - 与 api.cache.never() 相同
    由于实际的回调结果用于检查缓存条目是否有效,因此建议使用 那:

  • 回调应该小而且没有副作用。

  • 回调应该返回可能的最小范围的值。例如 .using(() => process.env.NODE_ENV)上面的用法并不理想,因为它会造成一个未知的 高速缓存条目的数量取决于检测到多少个 NODE_ENV 值。 .using(() => process.env.NODE_ENV === "development") 更安全,因为缓存条目 只能是 true 或 false。

api.env(…)

由于 NODE_ENV 是一种相当常见的切换行为方式,因此 Babel 还包含一个 API 函数 专门为此而设。此 API 用作检查的快速方法 加载了 Babel"envName",将 NODE_ENV 考虑在内 如果没有设置其他覆盖环境。

它有几种不同的形式:

  • api.env(“production”) 返回 true 如果 envName === “production”.
  • api.env(["development", "test"]) 返回 true 如果 ["development", "test"].includes(envName).
  • api.env() 返回当前的 envName 字符串。
  • api.env(envName => envName.startsWith("test-")) 如果 env"test-" 开头,则返回 true

注意: 这个函数在内部使用上面提到的 api.cache 来确保 Babel 知道这个构建依赖于特定的 envName。您不应该将它和 api.cache.forever() 或者 api.cache.never() 一起使用。

api.caller(cb)

API 用作访问已传递给 Babelcaller 数据的方法。 由于 Babel 的许多实例可能在不同的 caller 的同一进程中运行 值,这个 API 旨在自动配置 api.cache,就像 api.env() 一样。

caller 值可用作回调函数的第一个参数。 最好用有类似的东西

function isBabelRegister(caller) {return !!(caller && caller.name === "@babel/register");
}module.exports = function(api) {const isRegister = api.caller(isBabelRegister);return {// ...};
};

根据特定环境切换配置行为。

api.assertVersion(range)

虽然 api.version 在一般情况下很有用,但有时候声明你的版本会很好。 此 API 公开了一种简单的方法:

module.exports = function(api) {api.assertVersion("^7.2");return {// ...};
};

相关文章:

【Vue】Parsing error: No Babel config file detected for ... vue

报错 Parsing error: No Babel config file detected for E:\Study\Vue网站\实现防篡改的水印\demo02\src\App.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files.             …...

2023-08-07力扣今日五题

链接: 剑指 Offer 53 - II. 0~n-1中缺失的数字 题意: 如题 解: 长度n的递增数组里,要找0到n中没出现的那个数字,那么出现的下标是0到n-1,一一对应即可,都出现了就是n没有 实际…...

ETHERCAT转PROFIBUS连接到300plc的配置方法

由于捷米JM-DP-ECT,是自主研发的一款PROFIBUS从站功能的通讯网关,它的主要功能是将ETHERCAT设备接入到PROFIBUS网络中生产环境比较复杂有多个设备采用不同的协议这极大的阻碍了,各个设备的数据互通。 JM-DP-ECT这个小小的网关可不简单&#x…...

Spring Boot配置文件与日志文件

1. Spring Boot 配置文件 我们知道, 当我们创建一个Spring Boot项目之后, 就已经有了配置文件存在于目录结构中. 1. 配置文件作用 整个项目中所有重要的数据都是在配置文件中配置的,比如: 数据库的连接信息 (包含用户名和密码的设置) ;项目的启动端口;第三方系统的调…...

可解释性分析的一些类别(草稿)(视觉)

目录 1.交互性解释 2. 本身具有解释性的模型 3.如何将可解释性分析应用到生成模型 参考文献 视觉领域从2020年开始可以分为两块,一个是图像分类,一个是图像生成。 图像分类:输入一张图片,输出语义标签,就是这张图…...

HTTPS-RSA握手

RSA握手过程 HTTPS采用了公钥加密和对称加密结合的方式进行数据加密和解密 RSA握手是HTTPS连接建立过程中的一个关键步骤,用于确保通信双方的身份验证和生成对称加密所需的密钥 通过RSA握手过程,客户端和服务器可以协商出一个共享的对称密钥,…...

bigemap国土管理行业应用

由于国营企业单位,管理土地,必须要有这样的软件套图 客户之前用的谷歌,后来不能访问了,通过其他途径搜索到我们 客户使用软件一般都用于套坐标以及空间规划图,方便于项目选址和居民建房报建在卫星图上找到用地范围&am…...

深入探索 Splashtop Enterprise 的潜力

在当今高度技术化的环境中,远程访问解决方案已成为无数组织的支柱。远程访问解决方案缩短了员工与工作之间的地理差距,提高了工作的效率和灵活性,促进形成了无缝的工作体验。在众多远程访问解决方案中,Splashtop Enterprise 作为远…...

创建型模式-单例模式

文章目录 一、创建型模式1. 单例设计模式1.1 单例模式的结构1.2 单例模式的实现(1)饿汉式-方式1(静态变量方式)(2)饿汉式-方式2(静态代码块方式)(3)懒汉式-方…...

2. Linux安装Git

yum安装 查看版本 版本太低,所以我们采用自己上传编译的方式进行 删除已安装的git yum remove git 下载最新安装包,并上传到服务器文件夹下 上传,解压 5.安装编译需要的依赖 yum install curl-devel expat-devel gettext-devel openssl-…...

检查网站是HTTP那种协议与获取域名的ipv6地址

前言 最近在做HTTPS的应用,可能需要使用ipv6的地址做SLB,但是怎么检查配置正确,总不能每次都看日志吧,实际上客户端也很容易查看,总结工作经验。 检查HTTP协议版本 笔者想到了使用浏览器方式,或者抓包&a…...

【转】金融行业JR/T0197-2020《金融数据安全 数据安全分级指南》解读

原文链接:金融行业JR/T0197-2020《金融数据安全 数据安全分级指南》解读 《金融数据安全 数据安全分级指南》 解 读 随着IT技术的发展,银行的基础业务、核心流程等众多事务和活动都运营在信息化基础之上,金融机构运行过程中产生了大量的数字…...

FPGA学习——电子时钟模拟(新)

文章目录 一、数码管简介二、C4开发板数码管原理图三、代码实现四、实现效果五、总结 博主在之前曾经编写过一篇电子时钟的博客(详情请见此篇博文),但曾经编写的电子时钟,未显示小数点位,同时当时的数码管模块是为了电…...

一文读懂快速开发平台

一、开发平台是什么? 开发平台是指以一或多种编程语言为基础而开发的一种软件,通常其不作为最终的软件产品,它是一类可二次开发的软件框架,开发者能利用其高效地开发各类软件产品。 在利用开发平台进行开发工作时,可摒…...

Docker实战-操作Docker容器实战(二)

导语   上篇分享中,我们介绍了关于如何创建容器、如何启动容器、如何停止容器。这篇我们来分享一下如何操作容器。 如何进入容器 可以通过使用-d参数启动容器后会进入后台运行,用户无法查看容器中的信息,无法对容器中的信息进行操作。 这个时候如果我们需要进入容器对容器…...

redis原理 5:同舟共济 —— 事务

为了确保连续多个操作的原子性,一个成熟的数据库通常都会有事务支持,Redis 也不例外。Redis 的事务使用非常简单,不同于关系数据库,我们无须理解那么多复杂的事务模型,就可以直接使用。不过也正是因为这种简单性&#…...

FreeRTOS(vTaskList与vTaskGetRunTimeStats)

目录 1、Cube配置 ①配置SYS ②配置TIM3 ③配置USART2 ④配置FreeRTOS ⑤配置中断优先级 2、代码添加改动 ①在main函数合适位置开启TIM3中断 ②修改HAL_TIM_PeriodElapsedCallback函数 ③完善两个相关函数 ④vTaskList与vTaskGetRunTimeStats的使用 vTaskList&#xff…...

机器学习---概述(二)

文章目录 1.模型评估1.1 分类模型评估1.2 回归模型评估 2. 拟合2.1 欠拟合2.2 过拟合2.3 适当拟合总结: 3.深度学习3.1层次(Layers):3.2 神经元(Neurons):3.3 总结 1.模型评估 模型评估是机器学…...

OPENCV C++(六)canny边缘检测+仿射变换+透射变换

图像的缩放 resize(image, image, Size(round(image.cols * 0.5), round(image.rows * 0.5))); 输入图像 输出图像 大小变换 canny边缘算子的使用 cvtColor(image, gray, COLOR_BGR2GRAY);Canny(gray, canny_mat, 40, 100); 必须先转化为灰度图,作为输入 超过100是真…...

大量删除hdfs历史文件导致全部DataNode心跳汇报超时为死亡状态问题解决

背景: 由于测试环境的磁盘满了,导致多个NodeManager出现不健康状态,查看了下,基本都是data空间满导致,不是删除日志文件等就能很快解决的,只能删除一些历史没有用的数据。于是从大文件列表中,找…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

MySQL的pymysql操作

本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

Ubuntu系统多网卡多相机IP设置方法

目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 ,这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器,右键点击 .uproject 文件,选择 "Generate Visual Studio project files",重…...

客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践

01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...