Rollup プラグイン
ロールアップ セッションのすべてのチャンクで JSDefender を実行するための Rollup プラグインです。いくつかのフックを使用して、JSDefender をロールアップ ビルド プロセスに統合します。
インストール
このプラグインをプロジェクトにインストールします。
npm install <package-directory>/preemptive-jsdefender-core-{version}.tgz <package-directory>/preemptive-jsdefender-rollup-plugin-{version}.tgz --save-dev
または
yarn add file:<package-directory>/preemptive-jsdefender-core-{version}.tgz file:<package-directory>/preemptive-jsdefender-rollup-plugin-{version}.tgz --dev
メモ:
プラグインの依存している(peerDependency)ライブラリである
@preemptive/jsdefender-core
もインストールする必要があります。
使用法
import JSDefenderRollupPlugin from '@preemptive/jsdefender-rollup-plugin';
// -- JSDefender 構成
const jsdConfig = {
// 構成ファイルがある場合は、そのファイルへの任意のパス。
// 既定:jsdefender.config.json
configurationFile: "jsdefender.config.json",
// false の場合、すべてのログ メッセージが表示され、
// それ以外の場合は、JSDefender ヘッダー情報と終了メッセージ、
// およびエラーと警告のみが表示されます。
// 既定:false
quietMode: false,
// false の場合、非本番モードでは保護がスキップされ、
// それ以外の場合は、すべてのモードで実行されます。
// 既定:false
enableInDevelopmentMode: false,
// 保護する必要のあるチャンク名
// 既定:すべてのチャンクが含まれます
includeChunks: [ 'app', 'util' ],
// 保護する必要がないチャンク名
// 既定:何も除外されません
excludeChunks: [ 'vendor', 'util' ],
/*
その他の JSDefender オプション
たとえば、`settings: { booleanLiterals: true, stringLiterals: true }` などを
ここで提供することもできます。
*/
};
export default {
plugins: [
JSDefenderRollupPlugin(jsdConfig),
],
};
メモ:
非本番モード('none' および 'development')では、保護は既定でスキップされます。この動作を変更するには、プラグインの
enableInDevelopmentMode
オプションを true
に設定します。
メモ:
保護構成は、プラグインのコンストラクターに直接指定できます。コンストラクターに指定した保護構成と、構成ファイルに指定した保護構成はマージされますが、マージする際、構成ファイルの保護構成はコンストラクターの保護構成によって上書きされます。たとえば、構成ファイルに
booleanLiterals: true
を指定し、プラグインのコンストラクターに booleanLiterals: false
を直接指定した場合、最終的な値は booleanLiterals: false
となります。
メモ:
チャンクが
includeChunks
と excludeChunks
の両方に指定されている場合は、後者(つまり、除外)が優先されます。
メモ:
NODE_ENV または BUILD 環境変数が
production
に設定されている場合、本番モードが有効になります。--environment
オプションを使用して設定することもできます(例:--environment BUILD:production
)。
構成
JSDefender の Rollup プラグインは、JSDefender の構成ファイルと同じ構成オブジェクトを受け付けます。詳細については、このドキュメントのホームを参照してください。プラグインは JSDefender CLI と同様、既定の構成を使用します。これは、プラグインに明示的に構成を指定することによって上書きできます。
メモ:
JSDefender に
configurationFile
を指定している場合、その個々の構成行は、rollup.config.js
またはその他の明示的に設定された Rollup 構成ファイル内の JSDefenderRollupPlugin
関数に直接渡された JSDefender 構成によって上書きされます。たとえば、JSDefendeRollupPlugin
に直接渡されるオブジェクトに booleanLiterals: true
を設定したが、configurationFile
には booleanLiterals: false
が設定されていた場合、前者が優先されます。つまり、最終的な値は booleanLiterals: true
になります。
Rollup との相互運用
Quiet Mode
JSDefender の quietMode
オプションは、ヘッダー情報と保護完了メッセージを除く [Info] レベルのメッセージを無効にします。JSDefender からの警告を抑制するには、Rollup CLI で --silent
オプションを使用します。
標準入力からのコードを保護する
JSDefender は、Rollup CLI からのコードも保護できます。次の例を参照してください。
rollup -i ./input.js -f es -p @preemptive/jsdefender-rollup-plugin
または
echo "export const foo = 42;" | rollup -f es -p @preemptive/jsdefender-rollup-plugin
この方法で Rollup CLI オプションを使用している間、JSDefender の動作は、暗黙の構成ファイル jsdefender.config.json
を介してのみ設定できます。