boolean
object
ç¼åçæç webpack 模åå chunkï¼æ¥æ¹åæå»ºé度ãcache
ä¼å¨å¼å
模å¼è¢«è®¾ç½®æ type: 'memory'
èä¸å¨ ç产
æ¨¡å¼ ä¸è¢«ç¦ç¨ã cache: true
ä¸ cache: { type: 'memory' }
é
ç½®ä½ç¨ä¸è´ã ä¼ å
¥ false
ä¼ç¦ç¨ç¼å:
webpack.config.js
module.exports = {
//...
cache: false,
};
å½å° cache.type
设置为 'filesystem'
æ¯ä¼å¼æ¾æ´å¤çå¯é
置项ã
æ¶éå¨ååºååæé´åé
çæªä½¿ç¨çå
åï¼ä»
å½ cache.type
设置为 'filesystem'
æ¶çæãè¿éè¦å°æ°æ®å¤å¶å°æ´å°çç¼å²åºä¸ï¼å¹¶ææ§è½ææ¬ã
boolean
false
in production mode and true
in development mode.webpack.config.js
module.exports = {
cache: {
type: 'filesystem',
allowCollectingMemory: true,
},
};
object
cache.buildDependencies
æ¯ä¸ä¸ªé对æå»ºçé¢å¤ä»£ç ä¾èµçæ°ç»å¯¹è±¡ãwebpack å°ä½¿ç¨è¿äºé¡¹åææä¾èµé¡¹çåå¸å¼æ¥ä½¿æä»¶ç³»ç»ç¼å失æã
é»è®¤æ¯ webpack/lib
æ¥è·å webpack çææä¾èµé¡¹ã
webpack.config.js
module.exports = {
cache: {
buildDependencies: {
// This makes all dependencies of this file - build dependencies
config: [__filename],
// é»è®¤æ
åµä¸ webpack ä¸ loader æ¯æå»ºä¾èµã
},
},
};
string
ç¼åçãé»è®¤ä¸º node_modules/.cache/webpack
ã
cache.cacheDirectory
é项ä»
å½ cache.type
被设置æ 'filesystem'
æå¯ç¨ã
webpack.config.js
const path = require('path');
module.exports = {
//...
cache: {
type: 'filesystem',
cacheDirectory: path.resolve(__dirname, '.temp_cache'),
},
};
string
ç¼åçè·¯å¾ãé»è®¤å¼ä¸º 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'
ç¨äºç¼åæä»¶çå缩类åãdevelopment
模å¼ä¸é»è®¤ä¸º false
ï¼production
模å¼ä¸é»è®¤ä¸º 'gzip'
ã
cache.compression
é
置项ä»
å¨ cache.type
设为 'filesystem'
æ¶å¯ç¨ã
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
compression: 'gzip',
},
};
string
ç¨äºåå¸çæçç®æ³ã详æ
请åé
Node.js cryptoãé»è®¤å¼ä¸º md4
.
cache.hashAlgorithm
é项ä»
å½ cache.type
设置æ 'filesystem'
æå¯é
ç½®ã
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
hashAlgorithm: 'md4',
},
};
number = 60000
æ¶é´ä»¥æ¯«ç§ä¸ºåä½ãcache.idleTimeout
表示ç¼ååå¨åççæ¶é´é´éã
cache.idleTimeout
é
置项ä»
å¨ [cache.type
] 'filesystem'
æ¶çæã
webpack.config.js
module.exports = {
//..
cache: {
type: 'filesystem',
idleTimeout: 60000,
},
};
number = 1000
以毫ç§ä¸ºåä½ãcache.idleTimeoutAfterLargeChanges
æ¯å½æ£æµå°è¾å¤§çæ´æ¹æ¶ï¼ç¼ååå¨åºå¨æ¤ä¹ååççæ¶é´æ®µã
cache.idleTimeoutAfterLargeChanges
ä»
å¨ cache.type
设为 'filesystem'
æ¶å¯ç¨ã
webpack.config.js
module.exports = {
//..
cache: {
type: 'filesystem',
idleTimeoutAfterLargeChanges: 1000,
},
};
number = 5000
å使¯«ç§ã cache.idleTimeoutForInitialStore
æ¯å¨åå§ç¼ååå¨åçåçæ¶é´æ®µã
cache.idleTimeoutForInitialStore
é
置项ä»
å¨ [cache.type
] 'filesystem'
æ¶çæã
webpack.config.js
module.exports = {
//..
cache: {
type: 'filesystem',
idleTimeoutForInitialStore: 0,
},
};
[string] = ['./node_modules']
cache.managedPaths
æ¯ä»
æç®¡è·¯å¾çå
管ç卿°ç»ãwebpack å°é¿å
å°ä»ä»¬è¿è¡åå¸åæ¶é´æ³å¤çï¼åè®¾çæ¬æ¯å¯ä¸çï¼å¹¶å°å
¶ç¨ä½å¿«ç
§ï¼ç¨äºå
ååæä»¶ç³»ç»ç¼åï¼ã
number = 5184000000
å 许æªä½¿ç¨çç¼åçå¨æä»¶ç³»ç»ç¼åä¸çæ¶é´ï¼ä»¥æ¯«ç§ä¸ºåä½ï¼ï¼é»è®¤ä¸ºä¸ä¸ªæã
cache.maxAge
ä»
å¨ cache.type
设置为 'filesystem'
æ¶çæã
webpack.config.js
module.exports = {
// ...
cache: {
type: 'filesystem',
maxAge: 5184000000,
},
};
number
å®ä¹å åç¼å䏿ªä½¿ç¨çç¼å项ççå½å¨æã
cache.maxGenerations: 1
: å¨ä¸æ¬¡ç¼è¯ä¸æªä½¿ç¨çç¼å被å é¤ã
cache.maxGenerations: Infinity
: ç¼åå°æ°¸è¿ä¿åã
cache.maxGenerations
é
置项ä»
å¨ cache.type
设置为 'memory'
æ¶ææã
webpack.config.js
module.exports = {
// ...
cache: {
type: 'memory',
maxGenerations: Infinity,
},
};
number
å®ä¹å åç¼å䏿ªä½¿ç¨çç¼å项ççå½å¨æã
cache.maxMemoryGenerations: 0
: æä¹
åç¼åä¸ä¼ä½¿ç¨é¢å¤çå
åç¼åãå®åªå°é¡¹ç®ç¼åå°å
åä¸ï¼ç´å°å®ä»¬è¢«åºååå°ç£çã䏿¦åºååï¼ä¸ä¸æ¬¡è¯»åå°å次ä»ç£çååºååå®ä»¬ãè¿ç§æ¨¡å¼å°æå°åå
å使ç¨ï¼ä½ä¼å¸¦æ¥æ§è½ææ¬ã
cache.maxMemoryGenerations: 1
: è¿å°ä»å
åç¼å䏿¸
é¤å·²åºååä¸å¨è³å°ä¸æ¬¡ç¼è¯ä¸æªä½¿ç¨ç项ãå½å次使ç¨å®ä»¬æ¶ï¼å®ä»¬å°ä»ç£çååºååãè¿ç§æ¨¡å¼å°æå°åå
å使ç¨éï¼åæ¶ä»å°æ´»å¨é¡¹ä¿çå¨å
åç¼åä¸ã
cache.maxMemoryGenerations
: å¤§äº 0 çå°æ°åå°ä¸º GC æä½å¸¦æ¥æ§è½ææ¬ãå®ä¼éçæ°åçå¢å èéä½ã
cache.maxMemoryGenerations
: development
模å¼ä¸é»è®¤ä¸º 10ï¼production
模å¼ä¸é»è®¤ä¸º Infinity
ã
cache.maxMemoryGenerations
é
置项ä»
å¨ cache.type
设置为 'filesystem'
æ¶ææã
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,
},
};
string
ç¼åçåç§°ãä¸åçååä¼å¯¼è´ä¸åççå
±åçç¼åãé»è®¤å¼ä¸º ${config.name}-${config.mode}
ãä½¿ç¨ cache.name
å½ä½ æå¤ä»½é
ç½®çæ¶åï¼æ¯æ¯è¾åççå ä¸ºä¼æé
ç½®ä¼æç¬ç«çç¼åã
cache.name
é项ä»
å½ cache.type
被设置æ 'filesystem'
çæ¶åå¯è¿è¡é
ç½®ã
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
name: 'AppBuildCache',
},
};
boolean = false
è·è¸ªå¹¶è®°å½å个 'filesystem'
ç¼å项çè¯¦ç»æ¶é´ä¿¡æ¯ã
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
profile: true,
},
};
string = 'pack': 'pack'
cache.store
åè¯ webpack ä»ä¹æ¶åå°æ°æ®åæ¾å¨æä»¶ç³»ç»ä¸ã
'pack'
: å½ç¼è¯å¨é²ç½®æ¶åï¼å°ç¼åæ°æ®é½åæ¾å¨ä¸ä¸ªæä»¶ä¸cache.store
é项ä»
å½ cache.type
设置æ 'filesystem'
æå¯é
ç½®ã
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
store: 'pack',
},
};
string: 'memory' | 'filesystem'
å° cache
ç±»å设置为å
åæè
æä»¶ç³»ç»ãmemory
é项å¾ç®åï¼å®åè¯ webpack å¨å
åä¸åå¨ç¼åï¼ä¸å
许é¢å¤çé
ç½®ï¼
webpack.config.js
module.exports = {
//...
cache: {
type: 'memory',
},
};
string = ''
ç¼åæ°æ®ççæ¬ãä¸åçæ¬ä¸ä¼å 许éç¨ç¼ååéè½½å½åçå 容ãå½é 置以ä¸ç§æ æ³éç¨ç¼åçæ¹å¼æ¹åæ¶ï¼è¦æ´æ°ç¼åççæ¬ãè¿ä¼è®©ç¼å失æã
cache.version
é项ä»
å½ cache.type
设置æ 'filesystem'
æå¯é
ç½®ã
webpack.config.js
module.exports = {
//...
cache: {
type: 'filesystem',
version: 'your_version',
},
};
æä»¶ç³»ç»ç¼åå è®¸å¨ CI çæå»ºä¹é´å ±äº«ç¼åã为äºè®¾ç½®è®¾ç½®ç¼åï¼
以䏿¯ä¸äºéç¨é ç½®
variables:
# å
åºä½¿ç¨ "main" 忝ç¼åï¼è¦æ± GitLab Runner çæ¬ä¸º 13.4
CACHE_FALLBACK_KEY: main
# è¿æ¯ webpack æå»ºä»»å¡
build-job:
cache:
key: '$CI_COMMIT_REF_SLUG' # 忝/tag åç§°
paths:
# ç¼åæä»¶å¤¹
# ç¡®ä¿å¨è¿ä¸ªä»»å¡ä¸æ²¡æè¿è¡ "npm ci" æè
æ´æ¹é»è®¤ç¼åæä»¶å¤¹
# å¦å "npm ci" å°ä¼å é¤ç¼åæä»¶
- node_modules/.cache/webpack/
- uses: actions/cache@v3
with:
# ç¼åæä»¶å¤¹
path: node_modules/.cache/webpack/
key: ${{ GITHUB_REF_NAME }}-webpack-build
# å
åºä½¿ç¨ "main" 忝ç¼å
restore-keys: |
main-webpack-build