.dependency-cruiser.js(設定ファイル)で定義する警告メッセージの日本語訳

7 min read

dependency-cruiser 概要

dependency-cruiserは、依存関係の可視化を行うツールである。npx depcruise --initを実行することで、.dependency-cruiser.jsが生成される。このファイルには、依存関係の可視化に関する設定が記述されている。npx depcruiseを実行することで、依存関係の可視化を行うことができる。

設定ファイルの翻訳

npx depcruise --initを実行すると、.dependency-cruiser.jsが生成される。中身は以下のような内容となっている。

{
  "forbidden": [
    {
      "name": "not-to-test",
      "comment": "don't allow dependencies from outside the test folder to test",
      "severity": "error",
      "from": { "pathNot": "^test" },
      "to": { "path": "^test" }
    }
  ]
}

コメント部分が英語になっているので、これを日本語に翻訳しておきたい。

ルールの概要

  1. no-circular
    • この依存関係は循環関係の一部です。解決策を見直してください(例:依存関係の反転を使用する、モジュールが単一の責任を持つようにするなど)。
  2. no-orphans
    • これは孤立したモジュールです。使用するか削除するか、あるいは依存関係の設定でこのモジュールに対する例外を追加してください。
  3. no-deprecated-core
    • このモジュールは非推奨のNodeコアモジュールに依存しています。代替モジュールを探してください。
  4. not-to-deprecated
    • このモジュールは非推奨のnpmモジュールに依存しています。新しいバージョンにアップグレードするか、代替モジュールを探してください。
  5. no-non-package-json
    • このモジュールはpackage.jsonに記載されていないnpmパッケージに依存しています。package.jsondependenciesにパッケージを追加して問題を解決してください。
  6. not-to-unresolvable
    • このモジュールは、ディスク上で見つからないモジュールに依存しています。npmモジュールであれば、package.jsonに追加してください。
  7. no-duplicate-dep-types
    • このモジュールは、package.jsonに複数回記載されている外部のnpmパッケージに依存しています。これは後でメンテナンスの問題を引き起こします。
  8. not-to-spec
    • このモジュールはテストファイルに依存しています。テストファイルはコードをテストするためだけに存在すべきです。それ以外の用途で使用される場合、その単一責任が失われます。
  9. not-to-dev-dep
    • このモジュールは、package.jsondevDependenciesセクションにあるnpmパッケージに依存しています。これは本番環境にデプロイされる可能性があります。
  10. optional-deps-used
    • このモジュールは、package.jsonでオプションとして指定されているnpmパッケージに依存しています。これは限られた状況でのみ意味をなすため、注意が必要です。
  11. peer-deps-used
    • このモジュールは、package.jsonでピア依存関係として指定されているnpmパッケージに依存しています。このモジュールがプラグインのようなものであれば問題ありませんが、それ以外の場合は注意が必要です。

ルールの翻訳

  1. no-circular

    • この依存関係は循環関係になっています。解決策を再評価することが推奨されます(例えば、依存関係の反転を使用する、モジュールが一つの責任だけを持つようにする等)。
  2. no-orphans

    • このモジュールは孤立しており、恐らくもはや使用されていない可能性があります。使用するか削除するか、あるいは依存関係の設定でこのモジュールに対する例外を追加してください。このルールはデフォルトでは、いくつかの特定のファイル(例:.eslintrc.jstsconfig.json)には適用されません。
  3. no-deprecated-core

    • このモジュールは非推奨のNodeのコアモジュールに依存しています。代替案が存在するはずですので、それを探してください。Nodeは軽々しく非推奨にしないので、注意が必要です。
  4. not-to-deprecated

    • このモジュールは非推奨のnpmモジュール(またはそのバージョン)に依存しています。遅いバージョンにアップグレードするか、代わりとなるモジュールを見つけてください。非推奨のモジュールはセキュリティリスクとなる可能性があります。
  5. no-non-package-json

    • このモジュールは、package.jsondependenciesセクションに記載されていないnpmパッケージに依存しています。この状態は問題であり、(1)本番環境で利用できないか、(2)本番環境で保証されていないバージョンで利用される可能性があります。package.jsondependenciesにこのパッケージを追加してください。
  6. not-to-unresolvable

    • このモジュールはディスク上で解決できないモジュールに依存しています。npmモジュールであればpackage.jsonに追加する必要があります。
  7. no-duplicate-dep-types

    • このモジュールは、package.json内で複数回(例えば、devDependenciesdependenciesの両方で)記載されているnpmパッケージに依存しています。これは後にメンテナンスの問題を引き起こす可能性があります。
  8. not-to-spec

    • このモジュールはテストファイル(spec)に依存しています。テストファイルはコードをテストする単一の責任を持つべきです。もしその外の何かに使用されている場合は、それを(例えば)別のユーティリティやヘルパーに分離してください。
  9. not-to-dev-dep

    • このモジュールはpackage.jsondevDependenciesセクションにリストされているnpmパッケージに依存していますが、本番環境にデプロイされる可能性があります。package.jsondependenciesセクションにのみ記載するようにしてください。
  10. optional-deps-used

    • このモジュールはpackage.jsonでオプションとして指定されているnpmパッケージに依存しています。これは限られた状況でしか意味をなさないため、注意が必要です。
  11. peer-deps-used

    • このモジュールはpackage.jsonでピア依存として指定されているnpmパッケージに依存しています。このモジュールがプラグイン等であれば問題ないですが、それ以外の場合は注意が必要です。