yarnは、Facebook (Meta)によって開発された、パッケージマネージャです。
今回は、yarnの使い方を解説していきたいと思います。
公式サイト
yarnの公式サイトはこちらです。
yarn公式サイト(https://yarnpkg.com/)
インストールについて
yarnでは、Corepackを使う方法が推奨されています。
Corepackは、pnpmやyarnなどのパッケージマネージャを管理できるツールです。
そして、Node.js v16.10以上のが使える環境では、すでにCorepackが入っていると思います。
もし、Node.jsを使っていない場合は、こちらを参考にインストールしておきましょう。
nodebrewを使ってNode.jsをインストールした場合、私の環境ではエラーが起こり、yarnコマンドが使えませんでした。
では、corepack
コマンドが使えるかどうか、helpを表示してみましょう。
以下のコマンドを実行します。
$ corepack -h
コマンドの使い方が表示されれば、corepack
コマンドを使うことができます。
さらにyarnは、npm
でインストールしなくても、corepack enable
コマンドで許可してあげるだけで使うことができます。
では、以下のコマンドで、パッケージマネージャを許可します。
(管理者権限で実行する必要があるようです)
$ sudo corepack enable
または、次のコマンドでyarnのみ許可することも可能です。
$ sudo corepack enable yarn
もし管理者権限で実行しなかった場合、次のようなエラーが表示されてしまうと思います。ご注意ください。
$ corepack enable
Internal Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/local/bin/pnpm'
Error: EACCES: permission denied, symlink '../lib/node_modules/corepack/dist/pnpm.js' -> '/usr/local/bin/pnpm'
これでyarn
コマンドが使えるようになります。
$ yarn -v
1.22.19
バージョンを確認する
さきほど実行した、yarn -v
というのは、yarnのバージョンを確認するコマンドです。
Yarn のバージョンは、以下のコマンドで確認することができます。
$ yarn --version
1.22.19
上のコマンドを短くしたものが、こちらです。
$ yarn -v
1.22.19
新しいプロジェクトの開始(package.jsonの作成)
新しいプロジェクトを開始する場合は、 package.json
ファイルを作成します。package.json
は、プロジェクト(作成するパッケージ)がどういうものなのか、が書かれたものです。
- プロジェクト名(パッケージ名)
- バージョン
- プロジェクト(パッケージ)の説明
- ライセンス
- 使用しているパッケージ
などの情報が、package.json
には書かれます。
package.json
は、以下のコマンドで作成できます。
$ yarn init
すると、いくつか質問が表示されますので、必要な情報を入力します。
あとから変更もできますし、作ったパッケージを公開しないのであれば、とくに気にする必要はないと思いますので、何も入力せずに、Enter(return)を押してしまっても構いません。
また、-y
オプションをつけることで、すべての質問にEnter(return)を押したときと同じふうになります。
$ yarn init -y
パッケージを公開しないのであれば、間違って公開してしまうことを防ぐため、package.json
に「"private": true
」を追加しておくといいです。-p
オプションを使うと、かんたんに"private": true
が追加できます。
$ yarn init -p
もちろん、-y
と同時に使うこともできます。
$ yarn init -yp
パッケージをインストールする
yarnでパッケージをインストールするには、yarn add
を使います。
$ yarn add パッケージ名
例えば、Bootstrapをインストールしたい場合は、以下のようになります。
$ yarn add bootstrap
パッケージのバージョンを指定する
パッケージのバージョンを指定したい場合は@
の後にバージョンを入力します。
$ yarn add パッケージ名@バージョン
例えば、Bootstrapのv5.0.2をインストールしたい場合は、以下のようにします。
$ yarn add bootstrap@v5.0.2
開発用のパッケージをインストールする
もし、インストールしたいパッケージが開発のときのみに使うものであれば、–devというオプションを使います。
$ yarn add --dev sass
または、これを省略して-D
とすることもできます。
$ yarn add -D sass
package.jsonからインストールする
今までと環境が変わったなどの場合には、package.json
に書かれたパッケージを、まとめてインストールすることができます。
package.json
と同じ階層で、以下のコマンドを実行します。
$ yarn install
または、yarn
を実行するだけでも、同じふうにインストールされます。
$ yarn
パッケージのアップグレードする
パッケージをアップグレードするには、yarn upgrade
を使います。
すべてのパッケージをアップグレード
すべてのパッケージをアップグレードするには、次のコマンドを実行します。
$ yarn upgrade
最新のバージョンにアップグレードするには、--latest
オプションを使います。
$ yarn upgrade --latest
パッケージ名を指定してアップグレード
アップグレードするパッケージを指定するには、次のようにします。
$ yarn upgrade パッケージ名
また、バージョンを指定することもできます。
$ yarn upgrade パッケージ名@バージョン
例えば Bootstrapをv5.2.3にアップグレードしたい場合は、次のようにします。
$ yarn upgrade bootstrap@v5.2.3
スクリプトを実行する
package.json
にあらかじめスクリプトを書いておき、それを実行することができます。
まず、package.json
には、次のように追加します。
{
"name": "sample_project",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private": true,
"scripts": {
"say": "echo こんにちは"
},
"dependencies": {
"bootstrap": "^5.2.3"
},
"devDependencies": {
"sass": "^1.56.1"
}
}
スクリプトを実行するには、yarn run
を使います。
$ yarn run say
yarn run v1.22.19
$ echo こんにちは
こんにちは
✨ Done in 0.03s.
run
を省略しても、同じ動作をします。
$ yarn say
yarn run v1.22.19
$ echo こんにちは
こんにちは
✨ Done in 0.03s.
パッケージのコマンドを実行する
yarn run
を使えば、インストールしたパッケージのコマンドを実行することもできます。
例えば、さきほどインストールしたSassの、バージョンを表示するコマンドを実行するには、次のようにします。
$ yarn run sass --version
runを省略しても、同じ動きをします。
$ yarn sass --version
また、さきほど紹介したスクリプトを利用して、Sassのコマンドをあらかじめ書いておくと、実行がかんたんになります。
{
"name": "sample_project",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
"private": true,
"scripts": {
"build:sass": "sass --no-source-map src/sass/:dist/css/"
},
"dependencies": {
"bootstrap": "^5.2.3"
},
"devDependencies": {
"sass": "^1.56.1"
}
}
次のコマンドで実行できます。
$ yarn run build:sass
run
を省略しても、同じ動作をします。
$ yarn build:sass
パッケージをアンインストールする
以下のコマンドでパッケージをアンインストールできます。
$ yarn remove パッケージ名
例えば、Bootstrapをアンインストールしたい場合は、次のようになります。
$ yarn remove bootstrap
まとめ
yarnは、Facebook (Meta)によって開発された、npmにかわるパッケージマネージャです。
Node.jsをインストールすることで、corepackが使えるようになり、corepackでyarnを許可することで、使えるようになります。
yarnの使い方はnpmとよく似ているので、学習にかかる時間はほとんどかからず、すぐに使えるようになることができます。