Javascript 何时在NPM上使用纱线?有什么区别?

Javascript 何时在NPM上使用纱线?有什么区别?,javascript,npm,yarnpkg,Javascript,Npm,Yarnpkg,和NPM之间有什么区别? 在写这个问题的时候,我只能在互联网上找到一些文章,展示NPM命令的纱线等值是什么 它们是否具有相同的功能(我知道Yarn进行本地缓存,看起来您只需要下载一次软件包),但除此之外,从NPM迁移到Yarn还有什么好处?更新:2018年3月(有点晚了…) 从第5版开始,npm 生成一个名为package lock.json的“lockfile”,该文件修复了整个依赖关系树,就像纱线(或任何其他)锁定机制一样 制作了一个工具 --save现在表示为npm i 更好的网络和缓存

和NPM之间有什么区别? 在写这个问题的时候,我只能在互联网上找到一些文章,展示NPM命令的纱线等值是什么

它们是否具有相同的功能(我知道Yarn进行本地缓存,看起来您只需要下载一次软件包),但除此之外,从NPM迁移到Yarn还有什么好处?

更新:2018年3月(有点晚了…) 从第5版开始,
npm

  • 生成一个名为
    package lock.json
    的“lockfile”,该文件修复了整个依赖关系树,就像纱线(或任何其他)锁定机制一样
  • 制作了一个工具
  • --save
    现在表示为
    npm i
  • 更好的网络和缓存使用率
npm ci
命令,通过仅安装在
package lock.json
中找到的包(如果
package lock.json
package.json
未同步,则报告错误),可以在连续集成环境中更快地安装依赖项

就我个人而言,我仍然使用
npm


起初的 我不愿意直接引用文档中的内容,但它们很好地解释了原因,足够简洁,以至于我不知道如何进一步总结这些想法

主要是:

  • 你总是知道你在每一次开发中都得到了同样的东西 机器

  • 它并行化
    npm
    不并行的操作,并且

  • 它能更有效地利用网络

  • 它也可以提高效率

  • 人们的生产经验是什么?谁知道呢,对公众来说,这是一个婴儿

    TL;博士: 从一开始,纱线锁定文件就保证重复运行 相同存储库中的纱线产生相同的包

    其次,纱线试图具有良好的性能,具有冷缓存,但 特别是有一个温暖的缓存

    最后,纱线使安全成为核心价值

    很好的博客文章 ”“甘特·拉博德

    略长的版本: 快速:Thread缓存它下载的每个包,因此它永远不需要 再一次。它还并行化操作以最大限度地利用资源 利用率高,因此安装时间比以往任何时候都快

    可靠:使用详细但简洁的锁文件格式,以及 安装的确定性算法,纱线能够保证 在一个系统上运行的安装将以完全相同的方式在另一个系统上运行 任何其他系统

    安全:Thread使用校验和验证每个已安装组件的完整性 在执行其代码之前打包

    和来自:
    • 脱机模式:如果您以前安装过软件包,则无需任何internet连接即可重新安装
    • 确定性:无论安装顺序如何,在每台机器上都将以相同的方式安装相同的依赖项
    • 网络性能:纱线有效地排队请求,避免请求瀑布,以最大限度地提高网络利用率
    • 多注册表:从npm或Bower安装任何软件包,并保持软件包工作流不变
    • 网络弹性:单个请求失败不会导致安装失败。请求失败后将重试
    • 平面模式:将不匹配的依赖项版本解析为单个版本,以避免创建重复项

    • 更多表情符号 当您使用Thread(使用Thread add packagename)安装软件包时,它会将软件包放在磁盘上。在下一次安装期间,将使用此包,而不是发送HTTP请求从注册表获取tarball

      Thread附带了一个方便的许可证检查器
      ,如果您必须检查所依赖的所有模块的许可证,它会变得非常强大

      如果您使用的是专有软件,那么使用哪种软件并不重要。使用npm,您可以使用npm-shrinkwrap.js,而可以使用THREN.lock和THREN

      欲了解更多信息,请阅读以下博客

      什么是PNPM?
      pnpm
      使用硬链接和符号链接在磁盘上只保存一个版本的模块。例如,当使用npm或Thread时,如果有100个项目使用相同版本的lodash,则磁盘上将有100个lodash副本。使用pnpm,lodash将保存在磁盘上的单个位置,并通过一个硬链接将其放入应安装的节点_模块中

      因此,您在磁盘上节省了千兆字节的空间,并且安装速度大大加快!如果您想了解pnpm创建的独特node_模块结构的更多细节,以及为什么它可以与node.js生态系统配合使用,请阅读以下小文章:

      如何安装PNPM? 如何使用PNPM安装npm包?
      PNPM
      优于
      纱线
      NPM
      这里是进度条,显示了
      NPM
      warn
      PNPM
      所花费的安装时间(越短越好)


      有关更多详细信息,请访问

      ,尝试为初学者提供更好的概述

      npm历来(2010年)是最受欢迎的JavaScript包管理器。如果要使用它管理项目的依赖项,可以键入以下命令:

      npm init
      
      这将生成一个
      package.json
      文件。它包含项目的所有依赖项

      然后

      将创建一个目录
      node\u modules
      ,并下载其中的依赖项(您添加到
      package.json
      文件)

      它还将创建一个
      包锁.json
      文件。此文件用于描述生成的从属关系树。它允许开发人员执行安装相同的依赖项。例如,您可以想象一个开发人员将依赖项升级到v2,然后升级到v3w
      pnpm install -g typescript // or your desired package
      
      npm init
      
      npm install