Shi-raCanth
@Shi-raCanth

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

[GitHub]Dependabot alertsを解決できない

解決したいこと

railsでオリアプを作成中です。
GitHubにて、Dependabot alertsの修正の指示通りコードを書き直すとアラートは消えるがアプリに異常が出るので解決方法を知りたい

発生している問題・エラー

右上の「Create Dependabot security update」で直ると思いクリックすると以下の記述が出現
df95c25a50ac1146b2414c91bb1bee00.png
訳したもの
55dd7d12ed7c6d062d4066c8e2a50789.png

自分で試したこと

  • 実際に指示通りにコードを書き換えてみる(これで実際にアラート自体は消えました) 7460e42c455c4669bd147c623111c30d.png
yarn.lock
json-schema@0.4.0:
  version "0.4.0"
  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=

ですがオリアプで作業を進めている中、ターミナルで「rails route」コマンドを実行するとエラーが発生
2701eb749a93c1a31e26513cc91c8567.png
これはおそらくコードを自分で書き換えたのが原因かと・・・

前半部分に載せた画像の「競合する依存関係が原因です」という部分が怪しいと思い以下のコードも書き換えたのですがうまくいきませんでした。

yarn.lock
jsprim@^1.2.2:
  version "1.4.1"
  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
  dependencies:
    assert-plus "1.0.0"
    extsprintf "1.3.0"
    json-schema "0.2.3"
    verror "1.10.0"
0

3Answer

yarn.lock は手で書き換えてはいけません。

エラーメッセージは @rails/webpacker 4.3.0 が jsprim 1.4.1 に依存して、それが json-schema 0.2.3 に依存していることを表しています。よって @rails/webpacker のバージョンから上げる必要があります。

@rails/webpacker の changelog によれば @rails/webpacker 4.3.0 と最新の5.4.3は互換性がありそうです。 yarn upgrade @rails/webpacker を実行して最新版までアップグレードすれば連鎖的に json-schema のバージョンも上がると思います。

1Like

残っているエラーはアップグレード前の @rails/webpacker のバージョンを表示していますね。 Create Dependabot security update をクリックしたらリトライされませんか?

また、 yarn upgrade @rails/webpacker だけでは間接的な依存関係がアップデートされないこともあります。その場合は yarn remove @rails/webpacker && yarn add -D @rails/webpacker も試してみてください。

1Like

Comments

  1. @Shi-raCanth

    Questioner

    リトライされなかったので、もう一つのコマンドを実行すると解決できました!
    自分一人では絶対にたどり着けない答えだったと思うので本当に助かりました!
    ありがとうございます!
  2. 解決したようでよかったです。

    yarn remove @rails/webpacker && yarn add -D @rails/webpacker について補足しておくと、パッケージをいったん削除して追加し直しています。このとき、削除前にパッケージが package.json の devDependencies セクションに書かれていたら、追加し直すとき yarn add -D コマンドを使い、 dependencies セクションに書かれていたら -D なしの yarn add を使う必要があります。

    @rails/webpacker は普通 devDependencies セクションに書くものなので回答では yarn add -D を使いました。今後他のパッケージでこの手順を行う場合は、 package.json の中を調べてコマンドを使い分けるようにしてください。
  3. @Shi-raCanth

    Questioner

    補足までしていただきありがとうございました。
    今後の参考にさせていただきます!

指示通りにコマンドを実行してjson-schemのアラートは消すことができました!ありがとうございます!
実は他にもアラートが出ていて、エラーの内容がほぼ同じだったので載せていなかったのですが、それに関してはアラートが消えないのですが、なぜなのでしょうか?

エラー画像 ![4b2731d96e2489a8f31c9b6b5decb27b.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2302434/a18eb930-1827-c8c2-e90a-894463b81b2d.png) ![8dc74d5b57cd698deddaa8442cab1b30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2302434/ecfe969a-c397-846f-eeef-da22ae84fce2.png) ![cad4f3e2ab85be6edceaede08b17d4ae.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2302434/4ed3068d-530a-d59d-3fc0-9eeb27b8b849.png)
エラーの内容的には教えていただいたコマンドで全て解決できると思うのですが・・・
0Like

Your answer might help someone💌