LoginSignup
5
2

More than 3 years have passed since last update.

【Ruby on Rails】yarn install --check-files

Last updated at Posted at 2021-01-19

導入

Rails環境で、node_moduleをインストールしたら発生したエラー。

========================================
  Your Yarn packages are out of date!
  Please run `yarn install --check-files` to update.
========================================


To disable this check, please change `check_yarn_integrity`
to `false` in your webpacker config file (config/webpacker.yml).

 
yarn check v1.22.5
info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.

解決方法

このエラーは、package.jsonにあるパッケージコンテンツのバージョンとハッシュ値がyarn.lockに記載されているものと一致しない場合に表示される。
つまり、package.jsonとyarn.lockに記載しているもののバージョンを一致させれば良い。
公式:コマンドリファレンス

1. yarn upgrade を実行

# package.jsonで指定されたバージョン範囲に基づいて、依存関係を最新バージョンに更新。
$ yarn upgrade

2. package.jsonとyarn.lockを比較して、バージョンが一致しているかを確認

package.jsonとyarn.lockを比較すると、

  • package.jsonでは、2.X.Xをダウンロードするように指定(当時、2.7.3が最新版)
  • yarn.lockでは、package.jsonで^2.7.3と指定されているので、2.9.4をダウンロードしている。

※ 参考:package.json:リファレンス

package.json
  "dependencies": {
    "chart.js": "^2.7.3"
  }
yarn.lock
chart.js@^2.7.3:
  version "2.9.4"
  resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684"
  integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==
  dependencies:
    chartjs-color "^2.1.0"
    moment "^2.10.2"

したがって、package.jsonのバージョン指定をyarn.lockのものと同様にする。

$ yarn upgrade chart.js@^2.9.4
  "dependencies": {
-    "chart.js": "^2.7.3"
+    "chart.js": "^2.9.4"
  }

3. Railsを起動してみる

$ rails s
=> Booting Puma
=> Rails 6.X.X application starting in development
=> Run `rails server --help` for more startup options
[1] Puma starting in cluster mode...
[1] * Version 4.3.7 (ruby 2.X.X-p137), codename: Mysterious Traveller
[1] * Min threads: 5, max threads: 5
[1] * Environment: development
[1] * Process workers: 1
[1] * Preloading application
[1] * Listening on tcp://0.0.0.0:3000
[1] Use Ctrl-C to stop
[1] - Worker 0 (pid: 81) booted, phase: 0

4. Docker環境の場合

なぜ、解決出来たのかわからないが、Dockerを使用している場合
上記の方法でも解決出来なかったが、Dockerプロセスを削除し、再ビルドしたら解決する場合もあった。

$ docker rm (docker ps -q -a) # コンテナの全削除
$ docker-compose up

参考

Yarn:公式サイト

5
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2