わすれっぽいきみえ

みらいのじぶんにやさしくしてやる

1日目: yarn使ってみた

yarnpkg.com

を触ってみる。

まず

// npmだとこうなるのが
npm init
// yarnを使うとこうなる
yarn init

package.jsonを作成する際に聞かれるnameとかは yarn init でも同じく聞かれるが、ちょっと表示の仕方が違ったりするので試してみてほしい。

// npmだとこうなるのが
npm install webpack
// yarnだとこうなる
yarn add webpack

このとき、npmだとpackage.jsonだけが作成されるが、yarnだとyarn.lockというものが作られる。
中身は以下。

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
abbrev@1:
  version "1.0.9"
  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"

acorn@^3.0.0:
  version "3.3.0"
  resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
(...略...)
wrappy@1:
  version "1.0.2"
  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"

xtend@^4.0.0:
  version "4.0.1"
  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"

yargs@~3.10.0:
  version "3.10.0"
  resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
  dependencies:
    camelcase "^1.0.2"
    cliui "^2.1.0"
    decamelize "^1.0.0"
    window-size "0.1.0"

webpack一個入れただけでこんだけ入るんかよ…と若干引いてたんだが、まぁinstallした後に表示されるtreeの内容がもうちょっと詳細に書かれる感じなので、まぁこんなものかとも思う。
これがrubyのbundlerやphpのcomposerでいうところのlockファイルに相当する。

入れるライブラリのバージョンを指定することもできて

// npmだと
npm install [<@scope>/]<pkg>@<version>
// yarnだと
yarn add [package]@[version]

基本的には

yarnpkg.com

にyarnコマンドの使い方が載ってるので見てほしい。
今日以降の記事でも都度自分が使ったコマンドのうち、使い方を覚えたいなと思うものについては記載していくつもりではある。

使い勝手的には、あんまりnpmと変わらなそう。
とりあえず今日はここまで。