2016-10-13 39 views
18

the blog post announcing yarn (an alternative npm client)他们说,“最简单的入门方法是运行npm install -g yarn”。但是如果你去the "install yarn" page in their docs,“npm安装纱线”没有在任何平台特定的安装页面上列出,它只作为“替代品”页面上的三个选项中的第三个提供。此外,当你npm install纱线,它打印一个弃用警告,“建议使用本地安装方法为您的环境安装Yarn。”所以我的问题是,如果npm install是最简单的安装方法,为什么它不是在他们的文档中推荐的方法?使用npm安装纱线有缺点吗?为什么我不使用npm来安装纱线?

回答

10

通过npm安装纱线没有明显的缺点。事实上,我自己选择这种方法的原因有几个:

  1. 这显然是最简单的方法。 npm i --global yarn和你的 可以立即用你的控制台上的npm代替yarn
  2. 如果您使用nvm并在每个版本的NodeJS保持不同的代码项目,那么你可以在一个版本上安装纱线和没有它在其他
  3. 老实说,我能想到的,它不是唯一的原因在特定于平台的安装提到的是,NPM平台无关
2

由于npm不是平台特定的,几乎可以在任何系统上运行,因此它被列为备选项。与特定于平台的安装相比,没有优势或劣势。区别在于安装位置,但所有方法都将全局yarn命令公开给您的CLI。

我认为他们将其列为“最简单的方法”,因为大多数人已经非常熟悉npm

17

根据纱线项目的维护者,通过NPM goes against the goals of the project安装纱线,可能会引发问题,并且,一般来说,不是特定于平台的安装方法糟糕。


优势,以推荐特定于平台的安装:

  • 纱线队的问候NPM为不安全和不可靠的。从纱线的"Installation" page“内经故宫安装”部分:

    注:一般不建议通过NPM安装的纱线。使用npm安装Yarn是不确定的,软件包没有签名,并且唯一的完整性检查是基本的SHA1哈希,这在安装系统范围的应用程序时存在安全风险。

    由于这些原因,强烈建议您通过最适合您的操作系统的安装方法安装Yarn。

  • 运行的纱线,这是一个独立的包管理工具,通过NPM可导致边缘的情况下问题(见issue 2072

  • 通过系统包管理器安装从NPM解耦纱,使您可以运行无NPM纱
  • 系统包管理器通常运行规律,保持纱线更新
  • 通过NPM安装纱线slow

优势,以npm install -g yarn

  • 方便快捷(npm install -g yarn
  • 能在任何环境NPM(平台无关)
  • 熟悉范式和过程的Node.js开发人员来完成
  • 可方便更新(npm update -g yarn
    • 纱线update命令存在(yarn self-update),但它似乎是broken
  • 对系统软件包管理器不依赖
  • 可以通过nvm

使用不同版本的纱线为不同的项目或不同版本的Node.js的系统包管理器参数的建议当提到Windows,没有官方软件包管理器时(除非您计算Windows更新),安装往往会崩溃。此外,Windows包管理器(如Chocolatey)通常未配置为自动更新。

我不确定我是否完全同意纱线团队对此的决定,但他们确实提出了一些公正的观点。 Yarn项目还很年轻,如果要成为npm的替代品,那么鼓励npm作为其主要安装者是没有意义的。

无论如何,通过npm安装似乎现在在大多数情况下工作得很好。


来源:

相关问题