以下のようなエラーメッセージで質問が投稿されています。
sf plugins install @salesforce/sfdx-scanner@latest-beta
ところで、このsfdx-scannerってなんだろう?
ソースコードの静的解析を、複数の言語(Apexを含む)で、一貫したコマンドラインインターフェースとレポート出力で実現する統一ツールです。
この拡張機能を使用すると、VS Code が Code Analyzer を使用してコードを操作できます。PMD および RetireJS エンジンに Salesforce Graph Engine を使用してスキャンを実行し、違反のリストを生成してコードを改善します。
Salesforce Code Analyzer VS Code 拡張機能 (ベータ) をインストールするには、まず Salesforce CLI をインストールします。続いて、ターミナルで sfdx plugins:install @salesforce/sfdx-scanner を実行します。
The engin "node" is incompactible with this module
fsdx-scanner eslint@8.57: This version is no longer supportd
error found incompactible module
@oclift/core@3.27.0: The engin "node" is incompactible with this module
◆原因
「Salesforce CLIとして」インストールされているnodeのバージョンが古い状態だった。
◆対応
Salesforce CLIをアンインストール→再インストールし、
コードアナライザーのインストールを試行。
なお、retire-js エンジンのこの特定のノードの問題は、今週末にリリースされる Code Analyzer v4 と Code Analyzer v5 の両方で修正される予定です。
ただし、まもなく (数か月以内に) Code Analyzer v4 のサポートが終了する可能性があることにも留意してください。そのため、代わりに新しい code-analyzer cli プラグインである Code Analyzer v5 の使用を開始することをお勧めします。
https://developer.salesforce.com/docs/platform/salesforce-code-analyzer/guide/code-analyzer.html
Code Analyzer v5 では、--rule-selector 引数を使用してルールの選択がはるかに簡単になります。code-analyzer.yml 構成ファイル内で独自のタグを割り当てて、ルールを必要に応じて分類することもできます。
To install v5:
sf plugins install code-analyzer
and then do
sf code-analyzer rulessf code-analyzer runsf code-analyzer config
コードアナライザーをインストールする
Salesforce Code Analyzer v3.x をインストールするには、このコマンドを実行します。
$ sf plugins install @salesforce/sfdx-scanner
コード アナライザーの最新の GA バージョンを具体的にインストールすることもできます。
$ sf plugins install @salesforce/sfdx-scanner@latest
Code Analyzer v4.x (ベータ版) をインストールするには、このコマンドを実行します。
$ sf plugins install @salesforce/sfdx-scanner@latest-beta
検討
このプラグイン本体の問題ではない?しかし解決策は分かりません。
- SF Package Install Warn - @salesforce/plugin-packaging different from the version specific by sf - Type Error - this.config.plugins.filter is not a fn
- Warning: Plugin @salesforce/plugin-packaging (2.1.10) differs from the version specified by sf (2.1.12)
CPDPについて
PMD に同梱されている CPD は、ファイル間で重複するブロックを識別するのに役立ちます。
最小トークンは環境変数「SFDX_SCANNER_CPD_MINIMUM_TOKENS」で設定できます。Macの場合は「export SFDX_SCANNER_CPD_MINIMUM_TOKENS=120」のように実行します。Windowsの場合はPowerShellで「$env:SFDX_SCANNER_CPD_MINIMUM_TOKENS = 120」のように実行します。
なお、今週末 (木曜日の午後) に Code Analyzer v5 (ベータ版) をリリースする予定です。これにより、cpd エンジンの最小トークン引数 (言語ごと) をより細かく制御できるようになります。
code-analyzer.yml ファイル (sfdx プロジェクトのルート フォルダーに配置することをお勧めします) を作成し、エンジンを設定できます。設定オプションの 1 つは次のとおりです。
engines:
cpd:
# Specifies the minimum tokens threshold for each rule language.
# The minimum tokens threshold is the number of tokens required to be in a duplicate block of code in order to be
# reported as a violation. The concept of a token may be defined differently per language, but in general it is a
# distinct basic element of source code. For example, this could be language specific keywords, identifiers,
# operators, literals, and more. See https://docs.pmd-code.org/latest/pmd_userdocs_cpd.html to learn more.
# If a value for a language is unspecified, then the default value of 100 will be used for that language.
minimum_tokens:
apex: 100
html: 100
javascript: 100
typescript: 100
visualforce: 100
xml: 100