yarn:终极包管理器指南 - 提高您的项目效率和性能

news2024/11/18 6:00:30

Yarn使用教程大纲

    • 一、介绍
      • 1.1 什么是Yarn
      • 1.2 Yarn的优势
      • 1.3 Yarn与npm的比较
    • 二、安装Yarn
      • 2.1 Windows安装Yarn
      • 2.2 macOS安装Yarn
      • 2.3 Linux安装Yarn
      • 2.4 注意事项
    • 三、初始化项目
      • 3.1 在项目中使用Yarn
      • 3.2 创建新项目
      • 3.3 在已有项目中使用Yarn
    • 四、添加依赖
      • 4.1 添加依赖
        • 4.1.1 安装依赖包
        • 4.1.2 使用不同标记来安装依赖
        • 4.1.3 更新依赖包版本
        • 4.1.4 管理依赖包
    • 五、管理依赖
      • 5.1 查看已安装的依赖包
      • 5.2 移除不需要的依赖包
      • 5.3 查看依赖树
    • 六、创建自定义命令
      • 6.1 利用Yarn运行自定义脚本
      • 6.2 理解package.json中的"scripts"字段
      • 6.3 在Yarn中使用自定义命令
    • 七、Yarn的工作原理
      • 7.1 Yarn的工作原理
      • 7.2 Yarn的锁定文件
    • 八、解决常见问题及故障排除
      • 8.1 解决常见问题及故障排除
        • 问题1: Yarn安装失败
        • 问题2: 包安装失败
        • 问题3: Yarn命令运行缓慢
      • 8.2 Yarn的常见故障及排除方法
        • 故障1: 包冲突
        • 故障2: Yarn无法连接registry
        • 故障3: Yarn命令无响应
    • 九、结语
  • 9.1 Yarn的使用优点
  • 9.2 对比Yarn和npm
  • 9.3 鼓励读者在实际项目中使用Yarn

一、介绍

在这里插入图片描述

1.1 什么是Yarn

Yarn是一个由Facebook开发的包管理工具,用于有效地管理项目的依赖关系。它旨在解决npm的一些限制和性能问题,为 JavaScript 包的管理提供了更可靠的解决方案。

1.2 Yarn的优势

  • 快速:Yarn可以并行地下载依赖项,因此它比npm更快。此外,Yarn还有一个本地缓存,使得安装相同版本的包时速度更快。
  • 可靠:Yarn使用一个锁定文件(yarn.lock),确保在不同环境中安装的依赖项版本一致。这提供了更可靠和确定的构建过程。
  • 安全:Yarn通过检查下载的软件包的哈希值来确保软件包的安全性,防止了通过恶意软件包传播恶意代码的风险。

1.3 Yarn与npm的比较

  • 性能:Yarn在性能方面具有优势,尤其是在首次安装依赖项时。它的并行下载和本地缓存机制使得安装速度更快。
  • 可靠性:Yarn的锁定文件机制确保了包的版本一致性,在多人协作或多环境部署时更加可靠。
  • 安全性:Yarn通过检查软件包哈希值确保软件包的安全性,减少了恶意软件包对系统的潜在威胁。
  • 用户体验:Yarn提供了更简洁和友好的命令行界面,使得包管理更加方便。

Yarn的出现为 JavaScript 项目的包管理带来了全新的选择,其快速、可靠和安全的特点大大提高了开发者的工作效率和项目的可靠性。

二、安装Yarn

2.1 Windows安装Yarn

  • 下载安装包
    • 打开Yarn官方网站:https://classic.yarnpkg.com/en/docs/install/#windows-stable
    • 选择“Download Installer",下载最新版本的Yarn安装包。
  • 安装Yarn
    • 双击下载的安装包,根据提示完成安装。
    • 在安装过程中,可以选择Yarn的安装位置。如果没有进行修改,Yarn会被安装到默认的位置。
  • 检查是否安装成功
    • 打开命令提示符(cmd)或Powershell。
    • 输入yarn --version,如果返回了Yarn的版本号,则说明安装成功。

2.2 macOS安装Yarn

  • 使用Homebrew安装
    • 安装Homebrew
      • 打开终端,输入以下命令:
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
      
      • 安装完成后,输入brew -v验证是否安装成功。
    • 安装Yarn
      • 在终端输入以下命令安装Yarn:
      brew install yarn
      
      • 安装完成后,输入yarn --version验证是否安装成功。

2.3 Linux安装Yarn

  • Ubuntu安装Yarn

    • 添加Yarn的APT仓库
      • 打开终端,输入以下命令:
      curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
      echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
      
    • 安装Yarn
      • 输入以下命令进行安装:
      sudo apt update && sudo apt install yarn
      
      • 等待安装完成后,输入yarn --version验证是否安装成功。
  • CentOS安装Yarn

    • 添加Yarn的Yum仓库
      • 打开终端,输入以下命令:
      curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
      
    • 安装Yarn
      • 输入以下命令进行安装:
      sudo yum install yarn
      
      • 等待安装完成后,输入yarn --version验证是否安装成功。

2.4 注意事项

  • 如果在安装过程中遇到问题,可以在官方网站(https://classic.yarnpkg.com/en/docs/install/)或Yarn的GitHub仓库(https://github.com/yarnpkg/yarn)上查找解决方案。
  • 可以使用npm install yarn -g命令用npm全局安装Yarn,但这种方式可能会与本地Yarn的版本冲突,不建议使用。

三、初始化项目

3.1 在项目中使用Yarn

在现代的前端开发中,使用包管理工具来管理项目依赖是非常普遍的。Yarn 是一个快速、可靠、安全的 JavaScript 依赖管理工具,它可以帮助开发人员更好地管理项目中的各种依赖关系。在项目中使用Yarn,可以通过以下步骤进行:

首先,确保已经在本地安装了Yarn。如果尚未安装Yarn,可以通过官方网站或包管理工具来安装。安装完成后,可以在命令行中输入 yarn --version 来验证Yarn是否安装成功。

接下来,在项目的根目录下创建一个新的 package.json 文件,用于记录项目的依赖信息。可以通过命令 yarn init 来交互式地创建这个文件。根据提示,输入项目的名称、版本、描述等信息,最终将生成一个基本的 package.json 文件。

3.2 创建新项目

使用Yarn创建新项目非常简单。首先,通过命令行进入要创建项目的目录。然后,可以运行 yarn init 命令来创建一个新的 package.json 文件。在执行该命令时,需要按照提示输入项目的相关信息,例如项目名称、版本、描述等。完成后,Yarn 将会在当前目录下生成一个基本的 package.json 文件,用于记录项目的基本信息和依赖管理。

3.3 在已有项目中使用Yarn

如果已经存在一个项目,并且想要开始使用Yarn 来管理该项目的依赖,可以按照以下步骤操作:

首先,通过命令行进入到该项目的根目录。然后,在命令行中运行 yarn init 命令,可以交互式地创建一个新的 package.json 文件,也可以选择跳过此步骤并直接开始安装依赖。

接下来,可以通过 yarn add package-name 命令来安装项目依赖。这将会在 package.json 文件中添加相应的依赖项,并在项目中生成一个 yarn.lock 文件,用于记录依赖的精确版本信息。

除了添加依赖外,还可以通过 yarn remove package-name 命令来移除项目中的依赖。这将会更新 package.json 文件和 yarn.lock 文件,确保项目依赖的准确性。

总而言之,使用Yarn来初始化新项目或者在已有项目中使用Yarn管理依赖是非常简单和高效的,它为开发人员提供了更好的依赖管理体验,让项目开发变得更加轻松和可靠。

四、添加依赖

4.1 添加依赖

在 Yarn 中,添加依赖是通过安装依赖包完成的。通过添加所需的依赖包,我们可以扩展项目的功能和特性。本节将详细介绍如何使用 Yarn 添加依赖包。

4.1.1 安装依赖包

使用 Yarn 安装依赖包非常简单。打开终端,进入项目根目录,然后运行以下命令:

yarn add [package-name]

其中,[package-name] 是需要添加的依赖包的名称。Yarn 将从注册表中下载依赖包,并将其添加到项目的 node_modules 目录中。

4.1.2 使用不同标记来安装依赖

除了简单地使用 yarn add 命令来安装依赖包,Yarn 提供了一些标记,可以自定义依赖的环境和版本。以下是常用的标记:

  • --dev:将依赖包添加到开发依赖中。这意味着这些依赖包只在开发过程中使用,而不包含在生产构建中。
  • --peer:将依赖包添加到同级依赖中。这意味着这些依赖包应该与项目中的其他包具有相同的版本。
  • --optional:将依赖包添加为可选依赖。这些依赖包不是必需的,如果无法安装,项目仍然可以正常工作。

例如,如果要将一个依赖包添加到开发依赖中,可以运行以下命令:

yarn add [package-name] --dev
4.1.3 更新依赖包版本

在项目开发过程中,可能需要更新依赖包的版本以修复 bug 或添加新功能。Yarn 提供了一种简单的方式来更新已安装的依赖包。

使用以下命令更新依赖包的版本:

yarn upgrade [package-name]

如果要将所有依赖包更新到最新版本,可以运行以下命令:

yarn upgrade

Yarn 将检查所有依赖包的最新版本,并进行更新。

4.1.4 管理依赖包

除了安装和更新依赖包,Yarn 还提供了一些命令来管理已安装的依赖包。以下是一些常用的命令:

  • yarn list:列出当前项目中已安装的所有依赖包及其版本信息。
  • yarn remove [package-name]:从项目中移除指定的依赖包。
  • yarn init:在项目中初始化一个新的 package.json 文件,用于管理项目的依赖。

使用这些命令,你可以方便地管理项目的依赖包。

以上是关于添加依赖的基本操作。通过使用 Yarn,你可以更方便地管理和维护项目的依赖关系。下一节将介绍如何运行 Yarn 命令来构建和运行项目。

五、管理依赖

在 Yarn 中,管理依赖包是一个重要的任务,它可以帮助我们管理项目的依赖关系,确保项目的稳定性和可维护性。在这一部分,我们将介绍如何使用 Yarn 来管理依赖。

5.1 查看已安装的依赖包

要查看已经安装在项目中的依赖包,我们可以使用 Yarn 的 list 命令。这个命令会列出项目的所有依赖包及其版本号。

yarn list

运行上述命令后,你会看到一个树形结构,显示了项目的所有依赖包。每个依赖包都有一个版本号,以及该依赖包所依赖的其他包。

5.2 移除不需要的依赖包

如果我们在项目中不再需要某个依赖包,我们可以使用 Yarn 的 remove 命令来移除它。这个命令会卸载指定的依赖包,并将其从项目的依赖列表中删除。

yarn remove [package]

使用上述命令,将 [package] 替换为要移除的依赖包的名称。Yarn 将会卸载该包,并删除它的引用。

5.3 查看依赖树

了解项目的依赖树对于理解整个项目的依赖关系非常重要。Yarn 提供了 graph 命令,可以用来查看项目的依赖树。

yarn graph

运行上述命令后,你会看到一个树形结构,显示了项目的依赖树。每个依赖包都有一个唯一的标识符,以及它所依赖的其他包。

以上就是在 Yarn 中管理依赖的基本操作。通过查看已安装的依赖包,移除不需要的依赖包以及了解依赖树,我们可以更好地管理我们的项目依赖关系,确保项目的稳定性和可维护性。

六、创建自定义命令

6.1 利用Yarn运行自定义脚本

在项目开发中,经常会遇到需要运行自定义的脚本来完成特定的任务,Yarn提供了一种简单而有效的方式来运行这些自定义脚本。通过Yarn,我们可以方便地执行这些脚本,而无需记住复杂的命令和参数。

要利用Yarn运行自定义脚本,首先需要在package.json文件中的scripts字段中定义相应的命令。例如,如果我们需要运行一个名为build的自定义脚本,可以在package.json中的scripts字段下添加如下内容:

"scripts": {
  "build": "npm run build"
}

然后,我们可以使用以下命令来执行这个自定义脚本:

yarn build

这将会按照package.json中定义的脚本来运行相应的命令。

6.2 理解package.json中的"scripts"字段

package.json文件中的scripts字段是Yarn中非常重要的一个概念。它允许我们定义各种自定义命令以及它们的具体实现。通过这种方式,我们可以将项目中各种复杂的任务抽象成简单的命令,从而方便地在Yarn中运行。

每个命令由一个键值对表示,键为命令的名称,值为要执行的具体命令。例如,我们可以将start命令定义为node index.js,然后通过yarn start来执行。这种方式使得我们可以按照约定的方式为项目定义一致的脚本命令,从而简化了项目的管理和开发流程。

6.3 在Yarn中使用自定义命令

一旦我们在package.json文件中定义了自定义命令,就可以在Yarn中轻松地使用这些命令。无论是项目构建、测试还是其他任何任务,都可以通过简单的yarn [命令名称]来执行相应的操作。

使用自定义命令可以极大地简化项目开发和管理过程,在团队合作中也能带来一致的命令使用体验。这些自定义命令的灵活性和易用性使得Yarn成为了一个强大的项目管理工具。

以上是关于Yarn中如何创建自定义命令的介绍,希望能对您有所帮助。如果您还有其他问题,欢迎继续提问。

七、Yarn的工作原理

7.1 Yarn的工作原理

Yarn 是一个由 Facebook 开发的 JavaScript 包管理器。与 npm 相比,Yarn 旨在解决在包安装过程中的固有问题,例如对相同依赖项的不兼容版本进行安装,��可能会导致项目崩溃或出现错误。

Yarn 使得包安装和管理更加稳定,同时保持速度,这得益于其工作原理。 Yarn 提供了一个名为 Node.js 软件包管理器(PNPM)的替代方案,使其更快,可以锁定安装包的版本,以确保稳定性。

7.2 Yarn的锁定文件

Yarn 的锁定文件是一个描述使用的依赖项及其版本的 JSON 文件。当用户或开发人员在目录中运行 yarn 命令时,Yarn 会读取锁定文件并从该文件中解析依赖关系,从而确保在后续安装中使用相同的依赖项版本。锁定文件保存了一个项目的依赖项的确切版本,重现相同的构建环境有助于减少错误和测试。

锁定文件主要由两个部分:

  1. 依赖项清单

该部分列出了项目中所有使用的依赖项,包括所需的软件包名称和版本。 有关说明和更改锁定文件的要素的示例如下:

{
    "name": "my-project",
    "version": "0.1.0",
    "dependencies": {
        "package-one": "^1.3.2",
        "package-two": "1.0.0"
    }
}

在这个例子中,my-project 依赖于包 package-one 1.3.2 的任何版本,并且需要使用 package-two 的确切版本 1.0.0。

  1. 版本清单

该部分描述了每个依赖项在特定版本/版本范围的环境下的确切依赖项。版本清单提供了在给定建筑环境中使用的确切包版本的详细信息。

{
    "name": "package-one",
    "version": "1.3.2",
    "dependencies": {
        "dependency-a": "^2.2.3",
        "dependency-b": "^1.4.1"
    }
}

在这个例子中,package-one 1.3.2 版本依赖于 dependency-a 的 2.2.3 版本和 dependency-b 的 1.4.1 版本。

八、解决常见问题及故障排除

8.1 解决常见问题及故障排除

Yarn作为一款流行的包管理工具,用户在使用过程中可能会遇到一些常见问题。以下是一些常见问题及对应的解决方案。

问题1: Yarn安装失败
  • 可能原因: Yarn安装过程中网络不稳定、权限不足等问题。
  • 解决方案:
    • 检查网络连接,确保网络稳定后重试安装。
    • 确保使用管理员权限运行安装命令。
问题2: 包安装失败
  • 可能原因: 包的依赖关系不清晰或包本身存在问题。
  • 解决方案:
    • 使用yarn install --force命令尝试强制重新安装。
    • 检查包的依赖关系,更新依赖版本后重试安装。
问题3: Yarn命令运行缓慢
  • 可能原因: Yarn命令受到网络或本地资源限制导致运行缓慢。
  • 解决方案:
    • 检查网络连接,优化网络环境。
    • 考虑使用Yarn的离线模式,加快包安装速度。

8.2 Yarn的常见故障及排除方法

在使用Yarn时,有一些常见故障需要及时排除,以下是一些常见故障及排除方法。

故障1: 包冲突
  • 可能原因: 项目中存在多个依赖包版本冲突。
  • 排除方法:
    • 使用yarn why <package-name>命令查找冲突原因。
    • 更新依赖版本,解决包冲突问题。
故障2: Yarn无法连接registry
  • 可能原因: Yarn配置中的registry设置有误或网络问题。
  • 排除方法:
    • 检查Yarn配置文件.npmrc中的registry设置。
    • 确保网络连接正常,尝试更换registry地址。
故障3: Yarn命令无响应
  • 可能原因: Yarn命令卡死或进程无响应。
  • 排除方法:
    • 使用系统工具监控Yarn进程,尝试中止卡死的命令。
    • 更新Yarn至最新版本,检查是否存在已知的bug并修复。

九、结语

9.1 Yarn的使用优点

Yarn 是一个快速、可靠、安全的左依赖管理工具,其使用优点如下:

  • 速度更快:Yarn 通过并行操作,缓存机制和更好的网络传输协议来提升包安装速度,优化了 npm 中包依赖搜寻时的算法,安装重复依赖时更加智能化。
  • 版本控制更加严谨:Yarn lockfile 可以确保在每个环境中使用的代码版本是一致的,保证开发者的项目的完整性。在安装、升级/回滚依赖时更加可控、独立,此举可以避免包冲突,保证代码的稳定运行。
  • 更安全:使用代码混淆,确保了代码和项目的安全性。Yarn 提供了一个集成的校验和验证机制,来检查安装的包是否合法,并使用 GPG 两层加密技术保证包的完整性验证。同时将缓存和安装步骤分离,确保安装回滚时留下可追踪的详细日志,降低安全风险。
  • 支持离线安装:能够离线安装已经安装过的依赖包,无需网络连接即可安装包和项目,有利于稳定的开发环境维护。

9.2 对比Yarn和npm

虽然 Yarn 和npm都是左依赖管理工具,但是它们具有明显的不同:

  • 速度: Yarn 的速度比npm更快,npm安装过程中需要将数据传到网络上,相对较慢。而Yarn 安装时,首先会从本地缓存中查找,如果没有会从远端下载,然后缓存到本地,适合搭建稳定、高速的生产环境。
  • 稳定性: npm在安装大型应用程序时存在性能和资源问题,Yarn均可正确安装以及处理较大项目。
  • 安全性: Yarn 有内置了包安全系统,可以快速检测出不安全的依赖包。此外,Yarn 根据包的哈希算法更安全,更不容易遭到恶意攻击。
  • 可读性: Yarn 使用可读性更强的lockfile格式做版本控制,而 npm 使用 package-lock.json 管理依赖版本。对比两者的lockfile格式,Yarn的lockfile更加健壮、可读性更强,而npm容易出现问题,可读性更弱。

9.3 鼓励读者在实际项目中使用Yarn

在实际项目中,使用Yarn可以提高项目开发的效率和稳定性。相对于npm而言,Yarn 已经成为了更加稳定和安全的依赖管理工具,对于维护较复杂的代码库,或者需要运行大型应用程序的情况下,使用Yarn可以减少在依赖版本管理方面的功课和风险。并且 Yarn 使用相对较为简便,新手也能轻松上手,建议读者在项目中适度尝试和使用Yarn,以提高项目的开发效率和代码管理效果。

非常感谢您抽出宝贵的时间阅读这篇文章。如果其中的内容对您有所帮助,还请点点关注哦。您的关注和鼓励对我来说意义重大,它们激励着我不断提升和改进,为您呈现更加优质和有益的信息。您的支持是我不断前行的动力源泉,也是我坚持不懈地创作、分享和传播知识的动力。
在这里插入图片描述

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

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

相关文章

【STM32+FPGA】先进算力+强安全+边缘AI,64位STM32MP2聚焦工业4.0应用

工业应用数字化和智能化程度&#xff0c;是衡量新质生产力的重要标准。STM32最新一代64位微处理器STM32MP2凭借先进算力、丰富接口和高安全性&#xff0c;为高性能和高度互联的工业4.0应用赋能。 STM32MP2四大关键特性&#xff0c;为工业4.0应用赋能 STM32MP2系列的第一颗产品S…

windows密码设置(windows10)

1. 在网络列表中点击“网络和Internet设置",显示页面如下&#xff1a; 2. 点击“主页”,显示页面如下&#xff1a; 3. 点击“账户”,显示页面如下&#xff1a; 3. 点击“账户”,显示页面如下&#xff1a; 在上图中选择“登录选项”&#xff0c;再选中“密码”&#xff0c…

“论SOA在企业集成架构设计中的应用”写作框架,系统架构设计师

论文真题 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA&#xff09;的新型企业应用集成技术&#xff0c;强调将企业和组织内部的资源和业务…

无线领夹麦克风怎么挑选,揭秘能让声音变好听的领夹麦!

在这个数字媒体迅速扩张的时代&#xff0c;直播带货和Vlog视频制作已经成为内容创作的新宠。自媒体视频内容的兴起&#xff0c;不仅改变了人们获取信息的方式&#xff0c;也推动了相关音频设备市场的繁荣。无线领夹麦克风&#xff0c;凭借其便于携带和使用方便的特点&#xff0…

讨论顺序表

讨论顺序表 C中的vector模拟实现成员变量尾插数据push_back扩容reserve 构造函数和析构函数拷贝构造函数指定位置插入数据指定位置删除数据迭代器失效完整代码 C中&#xff0c;vector是可以改变大小的数组的序列容器。可以看做底层就是一个数组&#xff0c;容量满时扩容。 C中的…

nacos的创建

nacos压缩包 链接&#xff1a;https://pan.baidu.com/s/1AYVKZvosDkcMMbTIB48Iew?pwd1234 提取码&#xff1a;1234 首先将下载好的nacos压缩包上传到linux环境中&#xff0c;然后解压缩&#xff08;解压缩命令&#xff09; tar -zxvf nacos-server-2.3.0.tar.gz解压成功后如…

【五】【QT开发应用】C++中lambda表达式,值捕获,引用捕获,隐式捕获,lambda表达式的返回类型

Lambda表达式 复盘 Lambda表达式 Lambda 表达式是 C11 引入的一种特性&#xff0c;用于定义匿名函数。它使得可以在代码中方便地定义和使用小段函数&#xff0c;而无需专门定义一个命名的函数。这在需要传递函数作为参数或者需要定义内联函数时非常有用。 基本语法 基本语法…

Python-矩阵元素定位

[题目描述] 小理得到了一个 n 行 m 列的矩阵&#xff0c;现在他想知道第 x 行第 y 列的值是多少&#xff0c;请你帮助他完成这个任务。输入格式&#xff1a; 第一行包含两个数 n 和m &#xff0c;表示这个矩阵包含 n行 m 列。从第 2 行到第 n1 行&#xff0c;每行输入 m 个整数…

告别繁琐代码,迈向编程新境界—Java集合与泛型全面解析

在Java编程的征途中&#xff0c;集合&#xff08;Collection&#xff09;与泛型&#xff08;Generics&#xff09;是两大里程碑式的特性&#xff0c;它们不仅极大地提升了代码的灵活性和安全性&#xff0c;还帮助开发者简化了数据结构的处理逻辑&#xff0c;让编程之旅变得更加…

Appium APP测试学习

1、安装client编程库(客户端) (1)如果遇到以下问题可以使用全路径安装 (2)安装后导致selenium升级&#xff0c;导致某些方法失效&#xff1a;如find_element_by_id。解决方法&#xff1a;卸载两个安装包&#xff0c;后面重新安装 2、安装appium Server:&#xff08;服务端&…

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中&#xff0c;少不了使用word&#xff0c;这个是大家必备的软件&#xff0c;今天给大家分享word设置上标快捷键&#xff0c;希望在办公中能帮到您&#xff01; 1、添加上标 在录入一些公式&#xff0c;或者是化学产品时&#xff0c;需要添加上标内容…

笔记:记录状态并判重的方法

题目&#xff08;八数码问题&#xff09; 编号为1-8的8个正方形滑块被摆成3行3列&#xff08;有一个格子留空&#xff09;&#xff0c;如下图所示 81573642 每次可以把与空格相邻的滑块&#xff08;有公共边才算相邻&#xff09;一道空格中&#xff0c;而它原来的位置就成为…

Vue3.3 的 defineOptions 的使用,方便在 setup 语法糖中为组件命名和控制父子属性透传,包含在线运行实例欧

defineOptions 是 Vue3.3 的新的宏&#xff0c;可以通过 defineOptions 宏在 <script setup> 中使用选项式 API&#xff0c;也就是说可以在一个宏函数中设置 name, props, emits, render, 控制是否允许父子非 props 的属性透传等功能。 defineOptions 可以直接在 setup …

新能源商业浪潮来袭:企业巨轮扬帆商海,共绘绿色未来蓝图

随着全球气候变化问题日益严峻&#xff0c;新能源产业正成为推动经济发展的新引擎。 在这场新能源商业浪潮中&#xff0c;众多企业如同巨轮一般&#xff0c;扬帆商海&#xff0c;共同绘制绿色未来的宏伟蓝图。 新能源产业的崛起&#xff0c;不仅为经济发展注入了新的活力&…

linux下进度条的实现

一、代码一版 使用模块化编程 1.processbar.h #include<stdio.h> #define capacity 101 //常量使用宏定义 #define style //符号方便后续修改 extern void processbar();修饰变量的时候一定要带extern&#xff0c;修饰函数的时候可以省略&#xff0c;因为没有函数体就…

将Windows11右键菜单修改为Windows10风格

Windows11更新后&#xff0c;右键菜单很多功能隐藏起来了&#xff0c;使用时需要点击“显示更多选型”才能获取完整功能。为了能获得Windows10右键菜单丝滑的体验&#xff0c;我总结了以下方法。 方法一&#xff1a;控制台操作法 按住winR打开运行窗口 输入cmd&#xff0c;…

护眼灯和普通台灯有什么区别?劣质护眼台灯宣传的三大套路

护眼灯和普通台灯有什么区别&#xff1f;围绕这一问题的讨论颇多。然而&#xff0c;真正体验过护眼台灯的人会深知&#xff0c;它与普通台灯之间的差异远非一般&#xff0c;涉及照明效果、色温调节、蓝光控制、闪烁问题及功能性设计等诸多层面。为了让更多人透彻理解这两者之间…

【代码阅读】SSC:Semantic Scan Context for Large-Scale Place Recognition

一、主函数 官方开源的代码提供了四个主函数&#xff0c;其中eval_pair.cpp和eval_top1.cpp是一组&#xff0c;分别用于计算两帧的相似度分数以及一帧点云在所有的51帧点云中相似度最高的25帧的相似度分数。eval_seq.cpp是在eval_top1.cpp的基础上&#xff0c;给了一堆序列&am…

视频格式转换方法:如何使用视频转换器软件转换视频

众所周知&#xff0c;目前存在许多不同的视频和音频格式。但我们的媒体播放器、移动设备、PC 程序等仅兼容少数特定格式。例如&#xff0c;如果不先将其转换为 MP4、MOV 或 M4V 文件&#xff0c;AVI、WMV 或 MKV 文件就无法在 iPhone 上播放。 视频转换器允许您将一种视频格式…

[经验] candy是什么意思英语翻译 #笔记#其他#职场发展

candy是什么意思英语翻译 1、candy的意思 Candy是英语中的一个词汇&#xff0c;意思是糖果、糖果制品。Candy意为果脯的意思也不是很常见。 糖果是一种富含糖分的食品&#xff0c;主要由砂糖、粘合剂和食用色素等组成。糖果的种类可以很多&#xff0c;有硬糖、软糖、巧克力、…