GitHubアクションでDeetCheckを使用してGithubプルリクエストコメントを出力します.



導入
Node Package Manager (npm) , JavaScriptとタイプスクリプトを持つシステムを開発するのに不可欠なものは,大きなライブラリサイズの問題が多い.

もちろん、ノードモジュールの問題について多くの議論がありました.
私は、上記の問題を解決する多くの方法があると確信します、しかし、私のようなWebdev開発者のために、我々がすることができる唯一のことは我々が使用しない図書館を削除することになっています.

デプスチェック
depcheck 各ライブラリ依存関係を使用する方法をチェックするツールです.依存関係は使用されず、依存関係はパッケージから削除されます.NPMでパッケージ化されたプロジェクトのJSON.
使用npx プロジェクトのルートで
npx depcheck
簡単に実行して結果を得ることができます.
例えば、this repository
> npx depcheck
npx: installed 120 in 12.136s

Unused dependencies
* @fortawesome/free-regular-svg-icons
* @fortawesome/free-solid-svg-icons
* react-error-overlay
* react-flickr-hero
* sharp
* tween
Unused devDependencies
* @storybook/addon-a11y
* @storybook/addon-controls
* @storybook/addon-docs
* @storybook/addon-essentials
* @storybook/addon-info
* @storybook/addon-knobs
* @storybook/addon-links
* @storybook/addon-storyshots
* @types/aws-lambda
* @types/jest
* @types/node
* @types/react-fontawesome
* @types/storybook__addon-info
* babel-preset-gatsby
* babel-preset-react-app
* greenkeeper-lockfile
* identity-obj-proxy
* netlify-cli
* netlify-lambda
* react-test-renderer
* stylelint-config-idiomatic-order
* stylelint-config-prettier
* stylelint-config-recommended
* stylelint-config-styled-components
* stylelint-processor-styled-components
* ts-dedent
* ts-jest
* tslint-react
Missing dependencies
* build-url: .\src\components\flickrHero.tsx
* @fortawesome/fontawesome-common-types: .\src\components\socialIcons.tsx
* axios: .\functions\src\contact.js
* @babel/preset-react: .\.storybook\main.js
* @babel/preset-env: .\.storybook\main.js
* @babel/plugin-proposal-class-properties: .\.storybook\main.js
* babel-plugin-remove-graphql-queries: .\.storybook\main.js
このようにして、パッケージで定義されたライブラリを一覧表示できます.JSONですが、コードで使用されていませんが、パッケージで定義されていません.JSON

私はgetcheckのアクションにdepcheckを組み込む
結局、あなたがPRを提出するとき、DeepCheckが自動的に動くならば、それはよいでしょう.
そして、あなたが結果について通知されることができるならば、それはさらによりよいでしょう.
だから、私はgithubアクションを作成しました.
https://github.com/marketplace/actions/depcheck-action-with-pr
それは使いやすいです.最初に、あなたのgithub動作の引き金として引き要求でYAMLファイルを作成してください.
GithubトークンとPRコメントのURLが入力として要求され、これらはGithubアクションの環境変数として取得できます.
どちらもgithubアクションの環境変数として取得できます.
  • ギタブーントークン
  • これはsecrets.GITHUB_TOKEN .
  • プルーンコメンタリー
  • これはgithub.event.pull_request.comments_url PRイベント用.
  • on:
      pull_request:
        branches:
          - master
    
      build:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout source code
            uses: actions/checkout@v2
          - name: Setup Node
            uses: actions/setup-node@v2
            with:
              node-version: 14.x
          - name: "depcheck"
            uses: tubone24/[email protected]
            with:
              GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
              PR_COMMENT_URL: ${{ github.event.pull_request.comments_url }}
    
    あなたはちょうどuse このように.
    その結果、PRコメントとして出力されます.
    その時点で、PRコメントで結果を出力する市場では、githubアクションがありませんでした.
  • 未使用の依存セクションでは、ライブラリがパッケージで定義されていることを示します.JSONの依存関係は使われません.ジェイ.ts日本学術振興会.TSX、コーヒー.サラ.scss ,vueファイル.
  • 未使用のdevdpendenciesセクションは、ライブラリがパッケージのdevdependenciesで定義されていることを示します.JSONは各ファイルに存在しません.
  • 欠落しているセクションは、コードで使用されるライブラリがパッケージに存在しないことを示します.JSON、おそらくCDNや世界的に宣言されたライブラリからインポートされたライブラリを使っているからです.
  • このためのソースコードは下のリンクで見つかり、Dockerの起動したバージョンのGithubアクションを使用して実装されます.
    https://github.com/tubone24/depcheck_action