yarn
Facebookチームを中心に生まれた新しいパッケージマネージャー。
npm とちがって以下のような利点があるらしい
- lockfileによるバージョン固定
- セキュリティの向上
- 高速なインストール
一応npmにもshrinkwrap
と言うかたちでバージョン固定はあるらしい。
セキュリティに関してはパッケージのチェックや、キャッシュの活用などがあるとのこと。
Usage
Yarn は npm でインスール可能
npm i -g yarn
既存の npm プロジェクト上で yarn install
すれば、yarn.lock
ファイルが生成される。
なお yarn i
はNG。代わりに、yarn install
と等価なyarn
が用意されている。
パッケージの追加・削除
パッケージの追加削除には、yarn add
やyarn remove
を用いる
yarn add <packageName>
yarn remove <packageName>
これらのコマンドは実行後にpackage.json
とyarn.lock
ファイルを更新してくれる。
その他のコマンド
その他にもinit
やrun
などのコマンドも追加されているが、npm
とどう違うのかよくわからない…
yarn
をnpm
のエイリアスとして使用する場面を想定している…?
CircleCI でYarnを使う
一応公式にもドキュメントがある。
以下のようなcircle.yml
を構築することで、yarnの実行ファイルとモジュールのキャッシュを保持してくれるよう
machine:
environment:
YARN_VERSION: 0.18.1
PATH: "${PATH}:${HOME}/.yarn/bin:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
dependencies:
pre:
- |
if [[ ! -e ~/.yarn/bin/yarn || $(yarn --version) != "${YARN_VERSION}" ]]; then
echo "Download and install Yarn."
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version $YARN_VERSION
else
echo "The correct version of Yarn is already installed."
fi
override:
- yarn install
cache_directories:
- ~/.yarn
- ~/.cache/yarn
test:
override:
- yarn test