はじめに
Rails アプリで webpacker を利用するケースが増えていると思います。Rails 5.1以上のアプリでは、rails new myapp --webpack
というオプションをつける形でも webpacker をインストールできるようになっていますよね。
しかし個人的に、使い方を理解しきれていないことが多いです。そこで理解するためのとっかかりとして、config/webpacker.yml
のオプションを調べてみようと思い、その中の check_yarn_integrity
というオプションについて手始めに調べてみました。
何をするオプションなのか
webpacker の README を抜粋します。
By default, in development, webpacker runs a yarn integrity check to ensure that all local JavaScript packages are up-to-date.
This is similar to what bundler does currently in Rails, but for JavaScript packages.
If your system is out of date, then Rails will not initialize.
You will be asked to upgrade your local JavaScript packages by running yarn install.
こちらを意訳してみました。
- development 環境では、ローカルの全ての JavaScript パッケージが最新であるかを yarn integrity check する
- Rails の
bundler
がやっていることと似てるが、これは JavaScript 用 - システムが古くなっていると、Rails は初期化されない
-
yarn install
でローカルの JavaScript パッケージをアップグレードするか尋ねられるようになる
実施していること
実際関連しているコード部分を抜粋すると以下になります。
config.webpacker.check_yarn_integrity = true
にしておけば、rails c
や rails s
といった Rails アプリケーションを起動する際の初期化時に、 yarn check --integrity
を実行し、エラーが出たら以下のようなエラーメッセージを出力してくれるようです。
========================================
Your Yarn packages are out of date!
Please run `yarn install` to update.
========================================
To disable this check, please add `config.webpacker.check_yarn_integrity = false`
to your Rails development config file (config/environments/development.rb).
不要な場合は config.webpacker.check_yarn_integrity = false
にすれば OK のようです。
パッケージが古くなっていたらエラーで知らせてくれるということなので、パッケージを最新の状態に保つ手助けになりそうですね。
おわりに
JavaScript のパッケージ管理は複雑で理解が難しいですね。根気よく学習していきたいと思います。