boolean
object
生成されたWebpackモジュールとチャンクをキャッシュして、ビルド速度を向上させます。development
モードではcache
はtype: 'memory'
に設定され、production
モードでは無効になります。cache: true
はcache: { type: 'memory' }
のエイリアスです。キャッシュを無効にするにはfalse
を渡します。
webpack.config.js
module.exports = {
//...
cache: false,
};
cache.type
を'filesystem'
に設定すると、さらに多くの構成オプションが使用できるようになります。
cache.type
が'filesystem'
に設定されている場合にのみ使用可能な、逆シリアル化中に割り当てられた未使用のメモリを収集します。これは、データをより小さなバッファーにコピーする必要があり、パフォーマンスコストが発生します。
boolean
false
、developmentモードではtrue
です。webpack.config.js
module.exports = {
cache: {
type: 'filesystem',
allowCollectingMemory: true,
},
};
オブジェクト
cache.buildDependencies
は、ビルドの追加のコード依存関係の配列のオブジェクトです。Webpackはこれらの各アイテムとすべての依存関係のハッシュを使用して、ファイルシステムキャッシュを無効にします。
Webpackのすべての依存関係を取得するために、デフォルトはwebpack/lib
です。
webpack.config.js
module.exports = {
cache: {
buildDependencies: {
// This makes all dependencies of this file - build dependencies
config: [__filename],
// By default webpack and loaders are build dependencies
},
},
};
文字列
キャッシュのベースディレクトリ。デフォルトはnode_modules/.cache/webpack
です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.cacheDirectory
オプションを使用できます。
webpack.config.js
const path = require('path');
module.exports = {
//...
cache: {
type: 'filesystem',
cacheDirectory: path.resolve(__dirname, '.temp_cache'),
},
};
文字列
キャッシュの場所。デフォルトはpath.resolve(cache.cacheDirectory, cache.name)
です。
webpack.config.js
const path = require('path');
module.exports = {
//...
cache: {
type: 'filesystem',
cacheLocation: path.resolve(__dirname, '.test_cache'),
},
};
変更されていないモジュールのみを参照する変更されていないモジュールの計算をキャッシュします。cache.type
が'memory'
の場合にのみ使用でき、さらにexperiments.cacheUnaffected
を有効にする必要があります。
boolean
webpack.config.js
module.exports = {
//...
cache: {
type: 'memory',
cacheUnaffected: true,
},
};
false | 'gzip' | 'brotli'
キャッシュファイルに使用される圧縮の種類。デフォルトはfalse
です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.compression
オプションを使用できます。
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
compression: 'gzip',
},
};
文字列
ハッシュ生成に使用されるアルゴリズム。詳細については、Node.js cryptoを参照してください。デフォルトはmd4
です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.hashAlgorithm
オプションを使用できます。
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
hashAlgorithm: 'md4',
},
};
number = 60000
ミリ秒単位の時間。cache.idleTimeout
は、キャッシュの保存が行われるまでの時間間隔を示します。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.idleTimeout
オプションを使用できます。
webpack.config.js
module.exports = {
//..
cache: {
type: 'filesystem',
idleTimeout: 60000,
},
};
number = 1000
ミリ秒単位の時間。cache.idleTimeoutAfterLargeChanges
は、大きな変更が検出された後にキャッシュの保存が行われるまでの時間間隔です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.idleTimeoutAfterLargeChanges
オプションを使用できます。
webpack.config.js
module.exports = {
//..
cache: {
type: 'filesystem',
idleTimeoutAfterLargeChanges: 1000,
},
};
number = 5000
ミリ秒単位の時間。cache.idleTimeoutForInitialStore
は、最初のキャッシュの保存が行われるまでの時間間隔です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.idleTimeoutForInitialStore
オプションを使用できます。
webpack.config.js
module.exports = {
//..
cache: {
type: 'filesystem',
idleTimeoutForInitialStore: 0,
},
};
[string] = ['./node_modules']
cache.managedPaths
は、パッケージマネージャーのみによって管理されるパスの配列です。Webpackはそれらのハッシュ化とタイムスタンプ化を回避し、バージョンが一意であると想定し、スナップショットとして使用します(メモリキャッシュとファイルシステムキャッシュの両方)。
number = 5184000000
未使用のキャッシュエントリがファイルシステムキャッシュに残される許容時間(ミリ秒単位)。デフォルトは1ヶ月です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.maxAge
オプションを使用できます。
webpack.config.js
module.exports = {
// ...
cache: {
type: 'filesystem',
maxAge: 5184000000,
},
};
number
メモリキャッシュ内の未使用のキャッシュエントリの有効期間を定義します。
cache.maxGenerations: 1
: キャッシュエントリは、未使用になった後、1回のコンパイルで削除されます。
cache.maxGenerations: Infinity
: キャッシュエントリは永久に保持されます。
cache.type
が'memory'
に設定されている場合にのみ、cache.maxGenerations
オプションを使用できます。
webpack.config.js
module.exports = {
// ...
cache: {
type: 'memory',
maxGenerations: Infinity,
},
};
number
メモリキャッシュ内の未使用のキャッシュエントリの有効期間を定義します。
cache.maxMemoryGenerations: 0
: 永続的なキャッシュは、追加のメモリキャッシュを使用しません。ディスクにシリアル化されるまで、アイテムはメモリにのみキャッシュされます。シリアル化されると、次の読み取りではディスクから再度逆シリアル化されます。このモードではメモリ使用量が最小限に抑えられますが、パフォーマンスコストが発生します。
cache.maxMemoryGenerations: 1
: これは、アイテムがシリアル化され、少なくとも1回のコンパイルで未使用になった場合に、メモリキャッシュからアイテムをパージします。再度使用されると、ディスクから逆シリアル化されます。このモードでは、メモリ使用量が最小限に抑えられ、アクティブなアイテムはメモリキャッシュに保持されます。
cache.maxMemoryGenerations
: 0より大きい小さな数は、GC操作のパフォーマンスコストになります。数値が増加するにつれて低くなります。
cache.maxMemoryGenerations
: development
モードではデフォルトで10、production
モードではInfinity
です。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.maxMemoryGenerations
オプションを使用できます。
webpack.config.js
module.exports = {
// ...
cache: {
type: 'filesystem',
maxMemoryGenerations: Infinity,
},
};
変更されていないモジュールのみを参照する変更されていないモジュールのメモリ内の計算をキャッシュします。cache.type
が'filesystem'
の場合にのみ使用でき、さらにexperiments.cacheUnaffected
を有効にする必要があります。
boolean
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
memoryCacheUnaffected: true,
},
};
文字列
キャッシュの名前。異なる名前を使用すると、異なる共存するキャッシュが作成されます。デフォルトは${config.name}-${config.mode}
です。独立したキャッシュを持つ必要がある複数の構成がある場合、cache.name
を使用すると意味があります。
cache.type
が'filesystem'
に設定されている場合にのみ、cache.name
オプションを使用できます。
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
name: 'AppBuildCache',
},
};
boolean = false
'filesystem'
タイプの個々のキャッシュアイテムの詳細なタイミング情報を追跡し、ログに記録します。
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
profile: true,
},
};
boolean
5.85.0
Webpackがキャッシュをファイルシステムに保存するのを防ぎます。cache.type === "filesystem"
およびcache.store === 'pack'
の場合にのみ使用できます。
module.exports = {
//...
cache: {
type: 'filesystem',
store: 'pack',
readonly: true,
},
};
string = 'pack': 'pack'
cache.store
は、Webpackがファイルシステムにデータを保存するタイミングを指示します。
'pack'
: コンパイラがアイドル状態のときに、すべてのキャッシュされたアイテムの単一ファイルにデータを保存します。cache.store
オプションは、cache.type
が 'filesystem'
に設定されている場合のみ使用できます。
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
store: 'pack',
},
};
文字列: 'memory' | 'filesystem'
cache
のタイプをメモリ内またはファイルシステムのいずれかに設定します。memory
オプションはシンプルで、Webpack にメモリ内にキャッシュを保存するように指示し、追加の設定は許可しません。
webpack.config.js
module.exports = {
//...
cache: {
type: 'memory',
},
};
文字列 = ''
キャッシュデータのバージョンです。異なるバージョンではキャッシュの再利用は許可されず、既存のコンテンツを上書きします。キャッシュの再利用ができないような方法で設定が変更された場合は、バージョンを更新してください。これにより、キャッシュが無効になります。
cache.version
オプションは、cache.type
が 'filesystem'
に設定されている場合のみ使用できます。
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
version: 'your_version',
},
};
ファイルシステムキャッシュを使用すると、CIでのビルド間でキャッシュを共有できます。キャッシュを設定するには、
一般的な設定は次のようになります。
variables:
# fallback to use "main" branch cache, requires GitLab Runner 13.4
CACHE_FALLBACK_KEY: main
# this is webpack build job
build-job:
cache:
key: '$CI_COMMIT_REF_SLUG' # branch/tag name
paths:
# cache directory
# make sure that you don't run "npm ci" in this job or change default cache directory
# otherwise "npm ci" will prune cache files
- node_modules/.cache/webpack/
- uses: actions/cache@v3
with:
# cache directory
path: node_modules/.cache/webpack/
key: ${{ GITHUB_REF_NAME }}-webpack-build
# fallback to use "main" branch cache
restore-keys: |
main-webpack-build