yarn 是什么

Yarn 对你的代码来说是一个包管理器, 你可以通过它使用全世界开发者的代码,或者分享自己的代码。 Yarn 做这些快捷、安全、可靠,所以你不用担心什么。

代码通过包(package)(或者称为模块(module))的方式来共享。 一个包里包含所有需要共享的代码,以及描述包信息的文件,称为package.json。

安装升级

【安装】
你可以通过 Homebrew 包管理器安装 Yarn,如果没有安装 Node.js 它也可以安装。

brew install yarn

【升级】

brew upgrade yarn

【查看版本】

yarn --version

常用命令

【初始化新项目】

yarn init

【添加依赖包】

yarn global add [package] 全局安装包
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

[将依赖项添加到不同依赖项类别]
分别添加到 devDependencies、peerDependencies 和 optionalDependencies:

yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional

【升级依赖包】

yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

【移除依赖包】

yarn remove [package]

【安装项目的全部依赖】

yarn install

yarn.lock

为了跨机器安装得到一致的结果,Yarn 需要比你配置在 package.json 中的依赖列表更多的信息。 Yarn 需要准确存储每个安装的依赖是哪个版本。

为了做到这样,Yarn 使用一个你项目根目录里的 yarn.lock 文件。这些 “lockfile” 看起来像这样的:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
package-1@^1.0.0:
  version "1.0.3"
  resolved "https://registry.npmjs.org/package-1/-/package-1-1.0.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
package-2@^2.0.0:
  version "2.0.1"
  resolved "https://registry.npmjs.org/package-2/-/package-2-2.0.1.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
  dependencies:
    package-4 "^4.0.0"
package-3@^3.0.0:
  version "3.1.9"
  resolved "https://registry.npmjs.org/package-3/-/package-3-3.1.9.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
  dependencies:
    package-4 "^4.5.0"
package-4@^4.0.0, package-4@^4.5.0:
  version "4.6.3"
  resolved "https://registry.npmjs.org/package-4/-/package-4-2.6.3.tgz#a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0

这可以媲美其他像 Bundler 或 Cargo 这样的包管理器的 lockfiles。它类似于 npm 的 npm-shrinkwrap.json,然而他并不是有损的并且它能创建可重现的结果。

[注意]你的 yarn.lock 文件是自动产生的,而且应该完全被 Yarn 管理。 当你用 Yarn CLI 增加/升级/删除依赖,它将自动更新你的 yarn.lock 文件。 不要直接编辑这个文件,那样很容易弄坏某些东西。

【提交到版本控制系统 】
所有 yarn.lock 文件应该被提交到版本控制系统(例如 git 或者 mercurial)。 这允许 Yarn 跨所有机器安装相同的依赖树,无论它是你同事的笔记本还是 CI 服务器。

框架和库的作者也应该把 yarn.lock 提交到版本控制系统。 别担心发布 yarn.lock 文件,因为它对库的用户不会有任何影响。

Copyright © frankshi.com 2019 all right reserved,powered by Gitbook该文件修订时间: 2019-06-14 16:50:29

results matching ""

    No results matching ""