boolean
object
생성된 webpack 모듈 및 청크를 캐시하여 빌드 속도를 개선하세요. cache
는 development
모드에서 type: 'memory'
로 설정되고 production
모드에서는 비활성화됩니다. cache: true
는 cache: { type: 'memory' }
의 별칭입니다. 캐싱을 비활성화하려면 false
로 설정하세요.
webpack.config.js
module.exports = {
//...
cache: false,
};
cache.type
을 'filesystem'
으로 설정하는 동안 더 많은 옵션을 설정할 수 있습니다.
역 직렬화를 하는 동안 미사용 할당 메모리를 수집합니다. cache.type
이 'filesystem'
으로 설정된 경우에만 사용할 수 있습니다. 이를 위해서는 데이터를 더 작은 버퍼에 복사해야 하며 성능이 저하됩니다.
boolean
false
이고 개발 모드에서는 true
입니다.webpack.config.js
module.exports = {
cache: {
type: 'filesystem',
allowCollectingMemory: true,
},
};
object
cache.buildDependencies
는 빌드에 대한 추가 코드 디펜던시 배열의 객체입니다. Webpack은 각 항목의 해시와 모든 디펜던시를 사용하여 파일 시스템 캐시를 무효화합니다.
webpack의 모든 디펜던시를 얻기 위해 기본값은 webpack/lib
입니다.
webpack.config.js
module.exports = {
cache: {
buildDependencies: {
// 이 파일의 모든 디펜던시를 만듭니다(빌드 디펜던시).
config: [__filename],
// 기본적으로 webpack과 로더는 빌드 디펜던시에 포함됩니다.
},
},
};
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'
캐시 파일에 사용되는 압축 유형입니다. 기본적으로 이 값은 false
입니다.
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
사용되지 않은 캐시 항목이 파일 시스템 캐시에 머무를 수 있는 밀리 초 단위의 시간입니다. 기본값은 1개월입니다.
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,
},
};
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',
},
};
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' # 브랜치/태그 이름
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