npm からの移行は、ほとんどのユーザーにとってかなり簡単なプロセスであるはずです。 Yarn は npm と同じ package.json
フォーマットを使用し、npm レジストリから任意のパッケージをインストールできます。
既存の npm プロジェクトで Yarn を試してみたい場合は、次のコマンドを実行してみてください。
もしエラーが発生した場合は、既存の問題を確認するか、Yarn issue tracker に報告してください。
yarn
またはyarn add <package>
を実行すると、Yarn はあなたのパッケージのルートディレクトリに yarn.lock
ファイルを生成します。 このファイルを読んだり理解したりする必要はなく、ただソース管理にチェックインするだけです。 他の人が npm
の代わりに Yarn を使い始めたとき、yarn.lock
ファイルは彼らがあなたと同じ依存関係を正確に取得することを保証します。 場合によっては、package.json
ファイル内の情報は依存関係を排除するのに十分明確ではなく、 Yarn が依存関係を選択する決定論的な方法は依存関係の衝突に遭遇することになります。 これは特に大規模なプロジェクトで起こりやすく、npm install
が機能しないことがあり、開発者が頻繁にnode_modules
を削除して一から作り直すような場合に起こりがちです。
Yarn 1.7.0 では、npm
で生成した package-lock.json の状態を yarn import
で Yarn にインポートできます。
プロジェクトの他の開発者は npm
を使い続けられるので、プロジェクトの全員が同時に変換する必要はないでしょう。 yarn
を使っている開発者は全員全く同じ設定を取得し、npm
を使っている開発者は若干異なる設定を取得することになりますが、これは npm
の意図した動作です。
その後、Yarn が自分に合わないと判断したら、特に変更せずに npm
に戻せばいいのです。 プロジェクトで誰ももう Yarn を使っていないのであれば、古い yarn.lock
ファイルを削除することもできますが、その必要はありません。
現在 npm-shrinkwrap.json
ファイルを使っている場合、依存関係のセットが異なることに注意してください。 Yarn は npmshrinkwrap ファイルをサポートしません。なぜなら、これらのファイルには Yarn がより決定論的なアルゴリズムを実行するのに十分な情報が含まれていないからです。 もしshrinkwrapファイルを使用しているのであれば、プロジェクトに参加している全員を同時にYarnを使用するように変換するのが簡単でしょう。 既存のnpm-shrinkwrap.json
ファイルを削除し、新しく作成したyarn.lock
ファイルをチェックインするだけです。
CLI コマンドの比較
npm (v5) | Yarn |
---|---|
npm install |
yarn add |
(n/a) | yarn add --flat |
(n/a) | yarn add --har |
npm install --no-package-lock |
yarn add --no-lockfile |
(n/a) | yarn add --pure-lockfile |
npm install --save |
yarn add |
npm install --save-dev |
yarn add --dev |
(n/a) | yarn add --peer |
npm install --save-optional |
yarn add --optional |
npm install --save-exact |
yarn add --exact |
(n/a) | yarn add --tilde |
npm install --global |
yarn global add |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall |
yarn remove |
npm cache clean |
yarn cache clean |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |