Facebookが作ったというnpmとの互換パッケージマネージャ
Node.js系のパッケージマネージャーといえばnpmです。いろいろありますがかなり便利なのでずっと使ってました。
ただnpmで管理していたパッケージの機能がローカルでは動くけど、どうも本番で動いてないんじゃない?的なことがあって
どうやらそのパッケージのバージョンの違いで動いてない的なことが起こっているんじゃないか疑惑があってnpmってそういえば、
バージョンとかけっこうゆるふわというか多少のバージョンの違いとか気にしなくていいってところがいいんだけど、それって何かあったときにやば過ぎじゃないの?って気になった。
今まで遭遇しなかっただけでバージョンの違いでこんなやらかしがあるのか。。。
じゃあ対策ないの?どうしようかってことでYarnを検討してます。
このYarnですがnpmにはないyarn.lockというファイルが生成されまして、これがまぁRubyのgemなんかだとGemfile.lockというのと同じか似ている感じだと思ってます。
Gemfile.lockは開発環境と運用環境で同じgemをインストールするために使うらしいんですがそれと同じような仕組みになっているという認識。
実際には導入してませんが今のところいい感じで使えてます。npmよりもさくさく動くってところもいい。
Yarnのインストール
インストールはbrewからやるとまあ簡単ですわな。 これはMacの場合ね。ちなみに会社も家のマシンも最近立て続けにmacOS Sierraにしました。
1 | brew update |
念のためにバージョンの確認です。インストールうまくいってたらバージョンでます。 これ書いているときは0.19.1ですね。
1 | yarn --version |
Yarnの初期プロジェクト作成的な
で適当にプロジェクトフォルダにうつって
1 | yarn init -y |
これでnpmでもお世話になっていたpackage.jsonできます。
ちなみに
1 | npm --version |
でnpmでinitしたときにできたpackage.jsonはこれです。
1 | { |
こちらはyarnのinitの場合はこれです。
1 | { |
ちょっとシンプルになってます。
npmとの違い
1 | npm install jquery --save |
1 | npm install autoprefixer --save-dev |