これらは、webpackでサポートされている残りの構成オプションです。
object
boolean: false
require.amd
またはdefine.amd
の値を設定します。amd
をfalse
に設定すると、webpackのAMDサポートが無効になります。
webpack.config.js
module.exports = {
//...
amd: {
jQuery: true,
},
};
AMD用に書かれた特定の人気のあるモジュール(特にjQueryバージョン1.7.0〜1.9.1)は、ローダーがページに複数のバージョンが含まれることについて特別な許可を取っていることを示す場合にのみ、AMDモジュールとして登録されます。
許可は、登録を特定のバージョンに制限したり、異なる定義済みモジュールを持つ異なるサンドボックスをサポートしたりする機能でした。
このオプションを使用すると、モジュールが探しているキーを真の値に設定できます。実際には、webpackのAMDサポートは定義された名前を無視します。
boolean = false
最初のエラーが発生したときに、それを許容するのではなく、失敗します。デフォルトでは、webpackはこれらのエラーをターミナルで赤色でログに記録し、HMRを使用している場合はブラウザコンソールにもログに記録しますが、バンドルを続行します。有効にするには
webpack.config.js
module.exports = {
//...
bail: true,
};
これにより、webpackはバンドルプロセスを強制的に終了します。
[文字列]
name
のリストで、依存しているすべての兄弟構成を定義します。依存構成は最初にコンパイルする必要があります。
watchモードでは、依存関係が次のときにコンパイラーを無効にします。
依存関係が完了するまで、現在の構成はコンパイルされないことに注意してください。
webpack.config.js
module.exports = [
{
name: 'client',
target: 'web',
// …
},
{
name: 'server',
target: 'node',
dependencies: ['client'],
},
];
[RegExp, function (WebpackError, Compilation) => boolean, {module?: RegExp, file?: RegExp, message?: RegExp}]
webpackに特定の警告を無視するように指示します。これは、RegExp
、WebpackError
とCompilation
を引数として取得し、boolean
を返すraw警告インスタンスに基づいて警告を選択するカスタムfunction
、または次のプロパティを持つobject
を使用して行うことができます。
file
: 警告の元のファイルを選択するRegExp。message
: 警告メッセージを選択するRegExp。module
: 警告の元のモジュールを選択するRegExp。ignoreWarnings
は、上記のいずれかまたはすべてを含むarray
である必要があります。
module.exports = {
//...
ignoreWarnings: [
{
module: /module2\.js\?[34]/, // A RegExp
},
{
module: /[13]/,
message: /homepage/,
},
/warning from compiler/,
(warning) => true,
],
};
インフラストラクチャレベルのログ記録のオプション。
object = {}
boolean
既存の出力を更新する代わりに、出力に行を追加します。これは、ステータスメッセージに役立ちます。このオプションは、カスタムのconsole
が提供されていない場合にのみ使用されます。
webpack.config.js
module.exports = {
//...
infrastructureLogging: {
appendOnly: true,
level: 'verbose',
},
plugins: [
(compiler) => {
const logger = compiler.getInfrastructureLogger('MyPlugin');
logger.status('first output'); // this line won't be overridden with `appendOnly` enabled
logger.status('second output');
},
],
};
boolean
インフラストラクチャレベルのログ記録にカラフルな出力を有効にします。このオプションは、カスタムのconsole
が提供されていない場合にのみ使用されます。
webpack.config.js
module.exports = {
//...
infrastructureLogging: {
colors: true,
level: 'verbose',
},
plugins: [
(compiler) => {
const logger = compiler.getInfrastructureLogger('MyPlugin');
logger.log('this output will be colorful');
},
],
};
Console
インフラストラクチャレベルのログ記録に使用されるコンソールをカスタマイズします。
webpack.config.js
module.exports = {
//...
infrastructureLogging: {
console: yourCustomConsole(),
},
};
string
boolean = false
RegExp
function(name) => boolean
[string, RegExp, function(name) => boolean]
プラグインやローダーなどの指定されたロガーのデバッグ情報を有効にします。stats.loggingDebug
オプションと同様ですが、インフラストラクチャ用です。デフォルトはfalse
です。
webpack.config.js
module.exports = {
//...
infrastructureLogging: {
level: 'info',
debug: ['MyPlugin', /MyPlugin/, (name) => name.contains('MyPlugin')],
},
};
string = 'info' : 'none' | 'error' | 'warn' | 'info' | 'log' | 'verbose'
インフラストラクチャのログ出力を有効にします。stats.logging
オプションと同様ですが、インフラストラクチャ用です。デフォルトは'info'
です。
可能な値
'none'
- ロギングを無効にする'error'
- エラーのみ'warn'
- エラーと警告のみ'info'
- エラー、警告、および情報メッセージ'log'
- エラー、警告、情報メッセージ、ログメッセージ、グループ、クリア。折りたたまれたグループは折りたたまれた状態で表示されます。'verbose'
- デバッグとトレースを除くすべてをログに記録します。折りたたまれたグループは展開された状態で表示されます。webpack.config.js
module.exports = {
//...
infrastructureLogging: {
level: 'info',
},
};
NodeJS.WritableStream = process.stderr
ログ出力に使用されるストリーム。デフォルトはprocess.stderr
です。このオプションは、カスタムのconsole
が提供されていない場合にのみ使用されます。
webpack.config.js
module.exports = {
//...
infrastructureLogging: {
stream: process.stderr,
},
};
オブジェクト
ローダーコンテキストにカスタム値を公開します。
たとえば、ローダーコンテキストに新しい変数を定義できます
webpack.config.js
module.exports = {
// ...
loader: {
answer: 42,
},
};
次に、ローダーでthis.answer
を使用して値を取得します
custom-loader.js
module.exports = function (source) {
// ...
console.log(this.answer); // will log `42` here
return source;
};
文字列
構成の名前。複数の構成をロードするときに使用します。
webpack.config.js
module.exports = {
//...
name: 'admin-app',
};
number = 100
並行処理されるモジュールの数を制限します。パフォーマンスを微調整したり、より信頼性の高いプロファイリング結果を得るために使用できます。
boolean
アプリケーションの「プロファイル」をキャプチャします。これには、統計とヒントが含まれており、分析ツールを使用して分析できます。また、モジュールのタイミングの概要もログに記録します。
文字列
最後に記録されたセットを読み込むファイルを指定します。これは、記録ファイルを名前変更するために使用できます。以下の例を参照してください。
文字列
記録を書き込む場所を指定します。次の例は、recordsInputPath
と組み合わせてこのオプションを使用して、記録ファイルの名前を変更する方法を示しています
webpack.config.js
const path = require('path');
module.exports = {
//...
recordsInputPath: path.join(__dirname, 'records.json'),
recordsOutputPath: path.join(__dirname, 'newRecords.json'),
};
文字列
このオプションを使用して、複数のビルド間でモジュール識別子を格納するために使用されるwebpack「記録」を含むJSONファイルを生成します。このファイルを使用して、ビルド間でモジュールがどのように変化するかを追跡できます。生成するには、場所を指定します
webpack.config.js
const path = require('path');
module.exports = {
//...
recordsPath: path.join(__dirname, 'records.json'),
};
記録は、コード分割を利用する複雑な設定がある場合に特に役立ちます。データを使用して、分割されたバンドルが、必要なキャッシュ動作を達成していることを確認できます。
オブジェクト
snapshot
オプションは、ファイルシステムのスナップショットがどのように作成および無効化されるかを決定します。
webpack.config.js
const path = require('path');
module.exports = {
// ...
snapshot: {
managedPaths: [path.resolve(__dirname, '../node_modules')],
immutablePaths: [],
unmanagedPaths: [],
buildDependencies: {
hash: true,
timestamp: true,
},
module: {
timestamp: true,
},
resolve: {
timestamp: true,
},
resolveBuildDependencies: {
hash: true,
timestamp: true,
},
},
};
object = { hash boolean = true, timestamp boolean = true }
永続キャッシュを使用する場合のビルド依存関係のスナップショット。
hash
: 無効化を判断するためにコンテンツハッシュを比較します (timestamp
よりもコストが高いが、変更頻度は少ない)。timestamp
: 無効化を判断するためにタイムスタンプを比較します。hash
と timestamp
はどちらもオプションです。
{ hash: true }
: タイムスタンプを保持せずハッシュを使用する、フレッシュチェックアウトでの CI キャッシュに適しています。{ timestamp: true }
: ローカル開発キャッシュに適しています。{ timestamp: true, hash: true }
: 上記の両方のケースに適しています。タイムスタンプが最初に比較されます。これは、webpack がハッシュを計算するためにファイルを読み取る必要がないため、コストが低いです。コンテンツハッシュはタイムスタンプが同じ場合にのみ比較されます。これにより、最初のビルドでわずかなパフォーマンス低下が発生します。(RegExp | string)[]
パッケージマネージャーによって管理され、パスにバージョンまたはハッシュが含まれているため、すべてのファイルが不変であるパスの配列。
正規表現を使用する場合は、パスをキャプチャグループで囲むようにしてください。
(RegExp | string)[]
パッケージマネージャーによって管理され、それ以外の場合は変更されないと信頼できるパスの配列。
正規表現を使用している場合は、webpack がパスを抽出できるようにパスをキャプチャグループで囲むようにしてください。たとえば、これは webpack が内部的に node_modules
ディレクトリに一致させるために使用する正規表現です
/^(.+?[\\/]node_modules)[\\/]/
managedPaths
の一般的なユースケースは、node_modules
から一部のフォルダーを除外することです。たとえば、webpack に node_modules/@azure/msal-browser
フォルダー内のファイルが変更される可能性があることを認識させたい場合があります。これは、以下のような正規表現を使用して行うことができます。
module.exports = {
snapshot: {
managedPaths: [
/^(.+?[\\/]node_modules[\\/](?!(@azure[\\/]msal-browser))(@.+?[\\/])?.+?)[\\/]/,
],
},
};
(RegExp | string)[]
パッケージマネージャーによって管理されておらず、内容が変更される可能性があるパスの配列。
正規表現を使用する場合は、パスをキャプチャグループで囲むようにしてください。
object = {hash boolean = true, timestamp boolean = true}
モジュールの構築のスナップショット。
hash
: 無効化を判断するためにコンテンツハッシュを比較します (timestamp
よりもコストが高いが、変更頻度は少ない)。timestamp
: 無効化を判断するためにタイムスタンプを比較します。object = {hash boolean = true, timestamp boolean = true}
リクエストの解決のスナップショット。
hash
: 無効化を判断するためにコンテンツハッシュを比較します (timestamp
よりもコストが高いが、変更頻度は少ない)。timestamp
: 無効化を判断するためにタイムスタンプを比較します。object = {hash boolean = true, timestamp boolean = true}
永続キャッシュを使用する場合のビルド依存関係の解決のスナップショット。
hash
: 無効化を判断するためにコンテンツハッシュを比較します (timestamp
よりもコストが高いが、変更頻度は少ない)。timestamp
: 無効化を判断するためにタイムスタンプを比較します。