”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > -?什么是纱线?-

-?什么是纱线?-

发布于2024-11-15
浏览:490

当您正在处理一个项目时,看到一个yarn.lock 文件盯着您,您可能会想,“什么是yarn?”。那么让我们开始吧。

Yarn 是主要的 JS 包管理器之一,用于管理 JS 项目中的依赖项(包和库)。

包管理器是一个帮助开发人员处理项目所需的外部库和模块的工具 → 自动化安装、更新和管理依赖项的过程。

安装yarn作为你的包管理器,你可以使用命令来完成:npm install -gyarn(-g表示在你的机器上全局),安装后你可以简单地运行yarn —version来验证yarn的安装。

Yarn 与 package.json 一起使用。

package.json 文件是 Node.js 项目中的核心配置文件。 它作为项目的蓝图,包含有关项目的重要元数据,包括其依赖项、脚本、版本、作者信息等。
Yarn 创建一个锁定文件yarn.lock,它捕获所有包及其依赖项的确切版本,在每次安装包时提供设置。
包管理器还运行用于构建、测试和部署的脚本。

使用yarn添加包名添加包,这将从注册表中获取包并将其本地安装在节点模块文件夹中。 (https://classic.yarnpkg.com/en/docs/cli/add - 添加包时所需的一切)

如果想了解yarn如何工作,你首先需要了解什么是Node.js
Node.js 是运行时环境,允许您在服务器上运行 JS。 [JS → 运行时 → 服务器].

在 1990 年代,JS 主要像脚本语言一样在浏览器中使用,随着 Web 平台的发展,JS 变得更加强大,2009 年 Node.js 发布了。
到那时就不可能在服务器上运行JS代码了。 Node.js 为开发人员带来了完整的堆栈并用一种将在服务器上运行的语言编写整个应用程序。

它是如何工作的?
当您访问互联网上指向您的服务器的 URL 并收到请求时,我们可以使用节点来处理请求并从服务器的文件系统读取文件并将响应返回给客户端,以便他们可以在浏览器中查看 HTML。 &&&]

-? What is YARN ?-

我们说过 Yarn 是一个包管理器,它与 Node.js 一起管理项目依赖项(库或包)。当您开发 Node.js 项目时,您经常需要第三方库来执行各种任务(HTTP、使用数据库、构建 UI..)。 Yarn 的作用是为我们自动化下载、安装、更新和管理这些库的过程。

当您使用yarn创建项目时,您会初始化一个package.json文件,该文件定义项目的依赖项。当您运行yarn install或yarn add等命令时,Yarn与node.js包进行通信,下载它们并将它们放置在项目中的node_modules文件夹中。

Node.js 使用

CommonJS 模块系统,其中 Node.js 中的每个文件都被视为一个单独的模块。允许您将模块“要求”到您的代码中。使用 “require”,它尝试通过搜索以 node_modules 开头的已定义路径来定位 Express 模块。

为什么这很重要?

Node.js 本质上并不管理依赖关系! → 它依赖于像 Yarn 这样的外部包管理器来做到这一点。

结论完毕! Yarn 通过 node_modules 帮助 Node.js 安装 Node.js 所需的依赖项。创建yarn.lock以确保各种环境下的依赖关系一致!缓存软件包以实现更快的安装和离线支持!优化node_modules结构,让Node.js更高效地搜索依赖。使用脚本处理依赖冲突并自动执行任务,支持 Node.js 应用程序开发和部署。

版本声明 本文转载于:https://dev.to/nobody-99/-what-is-yarn--3647?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • Java为何无法创建泛型数组?
    Java为何无法创建泛型数组?
    通用阵列创建错误 arrayList [2]; JAVA报告了“通用数组创建”错误。为什么不允许这样做?答案:Create an Auxiliary Class:public static ArrayList<myObject>[] a = new ArrayList<myO...
    编程 发布于2025-05-04
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-05-04
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-05-04
  • 在Go语言中如何简洁定义10的幂常量
    在Go语言中如何简洁定义10的幂常量
    在GO 利用浮点线文字一种简洁的方式是使用浮点文字,该方法是使用floingpoint protals。写作1E3比写作1000更有效。这是一个示例(67个没有空间的字符):的文字用于未构图的整数常数,我们可以将1000用于KB,并用KB将随后的常量乘以KB,如下所示(77个没有空格的字符):,作...
    编程 发布于2025-05-04
  • 您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    您可以使用CSS在Chrome和Firefox中染色控制台输出吗?
    在javascript console 中显示颜色是可以使用chrome的控制台显示彩色文本,例如红色的redors,for for for for错误消息?回答是的,可以使用CSS将颜色添加到Chrome和Firefox中的控制台显示的消息(版本31或更高版本)中。要实现这一目标,请使用以下模...
    编程 发布于2025-05-04
  • PHP SimpleXML解析带命名空间冒号的XML方法
    PHP SimpleXML解析带命名空间冒号的XML方法
    在php 很少,请使用该限制很大,很少有很高。例如:这种技术可确保可以通过遍历XML树和使用儿童()方法()方法的XML树和切换名称空间来访问名称空间内的元素。
    编程 发布于2025-05-04
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-05-04
  • 为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    在CSS 问题:不正确的代码: 全球范围将所有余量重置为零,如提供的代码所建议的,可能会导致意外的副作用。解决特定的保证金问题是更建议的。 例如,在提供的示例中,将以下代码添加到CSS中,将解决余量问题: body H1 { 保证金顶:-40px; } 此方法更精确,避免了由全局保证金重置引...
    编程 发布于2025-05-04
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。本文深入研究了eval()和ast.literal_eval()之间的差异,突出显示其安全性含义...
    编程 发布于2025-05-04
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-05-04
  • 为什么HTML无法打印页码及解决方案
    为什么HTML无法打印页码及解决方案
    无法在html页面上打印页码? @page规则在@Media内部和外部都无济于事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: bo...
    编程 发布于2025-05-04
  • 如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    如何解决AppEngine中“无法猜测文件类型,使用application/octet-stream...”错误?
    appEngine静态文件mime type override ,静态文件处理程序有时可以覆盖正确的mime类型,在错误消息中导致错误消息:“无法猜测mimeType for for file for file for [File]。 application/application/octet...
    编程 发布于2025-05-04
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-05-04
  • C++中如何将独占指针作为函数或构造函数参数传递?
    C++中如何将独占指针作为函数或构造函数参数传递?
    在构造函数和函数中将唯一的指数管理为参数 unique pointers( unique_ptr [2启示。通过值: base(std :: simelor_ptr n) :next(std :: move(n)){} 此方法将唯一指针的所有权转移到函数/对象。指针的内容被移至功能中,在操作...
    编程 发布于2025-05-04
  • Go web应用何时关闭数据库连接?
    Go web应用何时关闭数据库连接?
    在GO Web Applications中管理数据库连接很少,考虑以下简化的web应用程序代码:出现的问题:何时应在DB连接上调用Close()方法?,该特定方案将自动关闭程序时,该程序将在EXITS EXITS EXITS出现时自动关闭。但是,其他考虑因素可能保证手动处理。选项1:隐式关闭终止数...
    编程 发布于2025-05-04

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3