各种依赖类型

最后更新于:2022-04-02 01:02:03

项目 `package.json` 文件中通常会包含多种依赖,如下: ``` { "name": "my-project", "dependencies": { "package-a": "^1.0.0" }, "devDependencies": { "package-b": "^1.2.1" }, "peerDependencies": { "package-c": "^2.5.4" }, "optionalDependencies": { "package-d": "^3.1.0" } } ``` ### 一、dependencies —— 普通依赖 运行项目时需要用到的依赖。如React、ImmutableJS。 ### 二、devDependencies —— 开发依赖 开发时使用到的依赖。如Babel(ES6转ES5)、Flow(JS静态类型检查) ### 三、peerDependencies —— 对等依赖,发布依赖包时用 对等依赖——依赖的特殊类型,你在发布依赖包时使用。 使用对等依赖意味着,别人使用你的程序时,安装的依赖需要跟你安装的一毛一样。这对像React这样的包特别有用,它经常需要复制一份react-dom供安装者使用。 ### 四、optionalDependencies —— 可选依赖 可选的依赖包,如果此包安装失败,Yarn依然会提示安装进程成功。 对非必须的依赖包很实用,如果安装失败,你可以选择其他的包替代。如Watchman。 ### 五、bundledDependencies —— 要打包的依赖/捆绑依赖 在发布包时,会一起打包的依赖包。它是由包名组成的数组。 捆绑依赖包应该下载到项目本地。功能跟普通依赖是一样的。运行 `$ yarn pack` 时,它们也会被打包。 捆绑依赖是为了解决有些包可能在npm找不到,或者在你需要把你自己的项目作为模块使用时。 - 作者:Shellway Ho 转载请注明出处! 来源: http://docs.shellway.cn/learning-yarn/
';

Yarn命令 vs NPM命令

最后更新于:2022-04-02 01:02:01

### NPM和Yarn命令对比 | npm 命令 | Yarn 命令 | 备注 | |---------------------| | npm install | yarn install | 安装所有依赖包(依据package.json中的依赖配置参数) | | (N/A) | yarn install --flat | 单版本模式 | | (N/A) | yarn install --har| 生成har文件,记录安装时网络请求性能 | | (N/A) | yarn install --no-lockfile| 不读写lockfile方式 | | (N/A) | yarn install --pure-lockfile| 不生成yarn.lock文件 | | npm install [package] | (N/A)| 安装依赖 | | npm install --save [package] | yarn add [package]| 添加生产模式依赖到项目 | | npm install --save-dev [package] | yarn add [package] [--dev/-D]| 添加开发模式的依赖 | | (N/A) | yarn add [package] [--peer/-P] | 对等模式添加依赖,发布/分享项目时的依赖 | | npm install --save-optional [package] | yarn add [package] [--optional/-O]| 添加可选依赖包 | | npm install --save-exact [package] | yarn add [package] [--exact/-E]| 精准添加某版本的包 | | (N/A) | yarn add [package] [--tilde/-T]| 添加同一次版本的包,如指定版本为1.2.3,可接受1.2.x的其他版本,但不接受1.3.x的版本 | | npm install --global [package] | yarn global add [package] | 添加全局包 | | npm rebuild | yarn install --force| 重建 | | npm uninstall [package] | (N/A)| 删除本地依赖包 | | npm uninstall --save [package] | yarn remove [package]| 删除正式依赖包| | npm uninstall --save-dev [package] | yarn remove [package]| 删除开发依赖包 | | npm uninstall --save-optional [package] | yarn remove [package] | 删除可选依赖包 | | npm cache clean | yarn cache clean| 清除缓存 | | rm -rf node_modules && npm install | yarn upgrade | 更新包管理器自身 | - 作者:Shellway Ho 转载请注明出处! 来源: http://docs.shellway.cn/learning-yarn/
';

从NPM客户端迁移

最后更新于:2022-04-02 01:01:58

大多情况,从npm客户端迁移至Yarn客户端都是很方便的。 package.json文件依然可用,你只要在已有目录执行以下命令即可: ``` $ yarn ``` ![切换成yarn客户端](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/0c5dc2743a69caab96fd38f55a217675_570x193.png) 要添加依赖,你可以使用: ``` $ yarn add ``` 执行以上两个命令后,yarn都会在项目根目录创建或更新yarn.lock文件。如果你要将项目发布或者共享给同事,请确保包含yarn.lock文件。 执行以上两个命令中的任一个,项目都会转换成yarn客户端。So easy,对吧?! 执行完成如图: ![yarn安装执行成功](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/d196344ada3ec018fa950019ef96002c_570x237.png) 执行成功 ![执行完yarn命令之后](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/4d7189b2f542f7d12ad6dbfcc72e486d_568x303.png) 执行报错 如果有错误,yarn会给你生成一个yarn-error.log,是不是很Nice,很暖男呢? 这时,你可以先删除node_modules目录,再次执行 `$ yarn`。 - 作者:Shellway Ho 转载请注明出处! 来源: http://docs.shellway.cn/learning-yarn/
';

命令列表

最后更新于:2022-04-02 01:01:56

#### 常用命令: 创建项目:`yarn init` 安装依赖包:`yarn` == `yarn install` 添加依赖包:`yarn add` #### Yarn命令列表 | 命令 | 操作 | 参数 | 标签 | | --- | --- | --- | --- | | yarn add | 添加依赖包 | 包名 | --dev/-D | | yarn bin | 显示yarn安装目录 | 无 | 无 | | yarn cache | 显示缓存 | 列出缓存包:`ls`,打出缓存目录路径:`dir`,清除缓存:`clean` | 无 | | yarn check | 检查包 | | | | yarn clean | 清理不需要的依赖文件 | | | | yarn config | 配置 | 设置:`set `, 删除:`delete`, 列出:`list` | [-g \| --global] | | yarn generate-lock-entry | 生成锁定文件 | 无 | 无 | | yarn global | 全局安装依赖包 | yarn global [--prefix] | --prefix 包路径前缀 | | yarn info | 显示依赖包的信息 | 包名 | --json:json格式显示结果 | | yarn init | 互动式创建/更新package.json文件 | 无 | --yes/-y:以默认值生成package.json文件 | | yarn install | 安装所有依赖包 | | --flat:只安装一个版本;--force:强制重新下载安装;--har:输出安装时网络性能日志;--no-lockfile:不生成yarn.lock文件;--production:生产模式安装(不安装devDependencies中的依赖) | | yarn licenses | 列出已安装依赖包的证书 | ls:证书列表;generate-disclaimer:生成免责声明 | | | yarn link | 开发时链接依赖包,以便在其他项目中使用 | 包名 | | | yarn login | 保存你的用户名、邮箱 | | | | yarn logout | 删除你的用户名、邮箱 | | | | yarn list | 列出已安装依赖包 | | --depth=0:列表深度,从0开始 | | yarn outdated | 检查过时的依赖包 | 包名 | | | yarn owner | 管理拥有者 | ls/add/remove | | | yarn pack | 给包的依赖打包 | --filename | | | yarn publish | 将包发布到npm | | --tag:版本标签;--access:公开(public)还是限制的(restricted) | | yarn remove | 卸载包,更新package.json和yarn.lock | 包名 | | | yarn run | 运行package.json中预定义的脚本 | | | | yarn self-update | yarn自身更新--未实现 | | | | yarn tag | 显示包的标签 | add/rm/ls | | | yarn team | 管理团队 | create/destroy/add/rm/ls | | | yarn test | 测试 = yarn run test | | | | yarn unlink | 取消链接依赖包 | | | | yarn upgrade | 升级依赖包 | | | | yarn version | 管理当前项目的版本号 | --new-version :直接记录版本号;--no-git-tag-version:不生成git标签 | | | yarn why | 分析为什么需要安装依赖包 | 包名/包目录/包目录中的文件名 | | - 作者:Shellway Ho 转载请注明出处! 来源: http://docs.shellway.cn/learning-yarn/
';

使用流程

最后更新于:2022-04-02 01:01:54

[TOC] ### 安装 #### MacOS ##### Homebrew ~~~ brew update ##我的机器上无需这一步,Homebrew在install之前会自动update brew install yarn ~~~ #### Windows 1、下载`.smi`按装包。确保Node.js已经安装并可用。 [>下载Yarn安装包](https://yarnpkg.com/latest.msi) 2、通过Chocolatey安装 [Chocolatey](https://chocolatey.org/)是Windows平台下的包管理器。 安装好后打开命令行,执行下面的命令: `choco install yarn` #### Linux ##### 1、Debian/Ubuntu Linux 编辑软件源: ~~~ 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 ~~~ 执行安装: `sudo apt-get update && sudo apt-get install yarn` ##### 2、CentOS / Fedora / RHEL 通过RPM包安装: `sudo wget https://dl.yarnpkg.com/rpm/yarn.repo -O /etc/yum.repos.d/yarn.repo` 如果没有Node.js,先配置一下: `curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -` 然后再用yum安装: `sudo yum install yarn` ##### 3、Arch Linux `yaourt -S yarn` ##### 4、Solus `sudo eopkg install yarn` 最后检查安装是否成功: `yarn --version` ### 换上淘宝源,加速安装过程 ``` $ yarn config set registry "https://registry.npm.taobao.org" ``` ### Yarn版本升级 运行以下命令,可以升级Yarn: ~~~ # Method 1: 确保安装了Homebrew $ brew upgrade yarn ~~~ ``` # Method 2: 下载官方脚本来升级 $ curl -o- -L https://yarnpkg.com/install.sh | bash ``` ### 常用使用流程 1. 创建新项目 - Creating a new project 2. 添加、更新、移除依赖包 - Adding/updating/removing dependencies 3. 安装、重装依赖包 - Installing/reinstalling your dependencies 4. 使用版本控制系统,如git - Working with version control (i.e. git) 5. 持续集成 - Continuous Integration ### 开启新项目 `yarn init` ### 管理依赖包 #### 1、添加依赖 ~~~ yarn add [package] # 通过名称添加一个依赖包 yarn add [package]@[version] #“包名@版本号”格式 yarn add [package]@[tag] #“包名@标签”格式 ~~~ #### 2、更新依赖包 ~~~ yarn upgrade [package] yarn upgrade [package]@[version] yarn upgrade [package]@[tag] ~~~ #### 3、删除依赖包 `yarn remove [package]` #### 4、安装项目依赖包 ~~~ yarn yarn install ~~~ 就是这么简单,就是这么任性~~ ~~~ 好吧,来复杂点的 ----------------- 1、安装(package.json中)所有依赖包: yarn or yarn install 2、安装依赖包的单版本(仅安装一个版本):yarn install --flat 3、强制所有包都预下载:yarn install --force 4、仅安装生产环境依赖包:yarn install --production ~~~ 嗯,就这样! 关于怎么为Yarn世界做贡献,请参考[官网](https://yarnpkg.com/en/docs/creating-a-package)! - 作者:Shellway Ho 转载请注明出处! 来源: http://docs.shellway.cn/learning-yarn/
';

概念理解

最后更新于:2022-04-02 01:01:52

> yarn:/jɑːn/,纱线,奇谈,故事。 Yarn为Node.js平台的代码包管理器。类似于知名的npm包管理器,实际是npm客户端。 特点:快速、安全、可靠。 1、离线模式:依赖包只要被装过一次,就会被缓存到本机,再次安装时直接从缓存中读取。 2、高确定性:无论安装顺序如何,同样的依赖包都将会以完全一样的方式安装。 3、网络性能优异:将请求高效队列化, Yarn可以将安装时间从数分钟减少至几秒钟。Yarn还兼容nom注册表,但包安装方法有所区别。其使用了lockfiles和一个决定性安装算法,能够为参与一个项目的所有用户维持相同的节点模块(node_modules)目录结构,有助于减少难以追踪的bug和在多台机器上复制。 Yarn官网地址:https://yarnpkg.com/ - 作者:Shellway Ho 转载请注明出处! 来源: http://docs.shellway.cn/learning-yarn/
';