DefinePluginì ì¬ì©íë©´ ì»´íì¼ íìì 구ì±í ì ìë ì ì ìì를 ë§ë¤ ì ììµëë¤. ì´ë ê°ë° ë¹ëì íë¡ëì
ë¹ë ê°ì ìë¡ ë¤ë¥¸ ëìì íê³ ì¶ì ë ì ì©í©ëë¤. ê°ë° ë¹ëìì ë¡ê¹
ì ìííì§ë§, íë¡ëì
ë¹ëììë ìííì§ ìë ê²½ì° ì ì ìì를 ì¬ì©íì¬ ë¡ê¹
ì ìíí ì§ ì¬ë¶ë¥¼ ê²°ì í ì ììµëë¤. ì´ê²ì´ DefinePluginê° ì ì©í ì´ì ì
ëë¤. ì´ íë¬ê·¸ì¸ì ì¤ì íê³ ê°ë° ë° íë¡ëì
ë¹ë íê²½ì ìì´ë²ë¦¬ì¸ì.
new webpack.DefinePlugin({
// Definitions...
});DefinePluginì ì ë¬ë ê° í¤ë .ë¡ ê²°í© ë ê°ë³ ëë ë¤ì¤ ìë³ìì
ëë¤.
typeof ì ëì¬ë¥¼ ë¶ì´ë©´ typeof í¸ì¶ì ëí´ìë§ ì ìë©ëë¤.ê°ì ì½ëì ì¸ë¼ì¸ ëì´ ì¤ë³µ ì¡°ê±´ì ì ê±°í기 ìí ìµìí ë¨ê³ë¥¼ ê±°ì¹ê² ë©ëë¤.
new webpack.DefinePlugin({
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify('5fa3b9'),
BROWSER_SUPPORTS_HTML5: true,
TWO: '1+1',
'typeof window': JSON.stringify('object'),
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
});console.log('Running App version ' + VERSION);
if (!BROWSER_SUPPORTS_HTML5) require('html5shiv');if (!PRODUCTION) {
console.log('Debug info');
}
if (PRODUCTION) {
console.log('Production log');
}ìµìí ë¨ê³ ìì´ webpackì íµê³¼íë©´ ë¤ìê³¼ ê°ì ê²°ê³¼ê° ëíë©ëë¤.
if (!true) {
console.log('Debug info');
}
if (true) {
console.log('Production log');
}ê·¸ í ìµìí ë¨ê³ë¥¼ ê±°ì¹ ê²°ê³¼ë ë¤ìê³¼ ê°ìµëë¤.
console.log('Production log');ê¸°ë¥ íë그를 ì¬ì©íì¬ íë¡ëì /ê°ë° ë¹ë 기ë¥ì íì±í/ë¹íì±í í ì ììµëë¤.
new webpack.DefinePlugin({
NICE_FEATURE: JSON.stringify(true),
EXPERIMENTAL_FEATURE: JSON.stringify(false),
});íë¡ëì /ê°ë° ë¹ëìì ìë¡ ë¤ë¥¸ ìë¹ì¤ URLì ì¬ì©í ì ììµëë¤.
new webpack.DefinePlugin({
SERVICE_URL: JSON.stringify('https://dev.example.com'),
});runtimeValuefunction (getterFunction, [string] | true | object) => getterFunction()
íì¼ì ìì¡´íë ê°ì¼ë¡ ë³ì를 ì ìí ì ìì¼ë©° ì´ë¬í íì¼ì´ íì¼ ìì¤í ìì ë³ê²½ ë ë ì¬íê° ë©ëë¤. ì´ë ê°ìë íì¼ì´ ë³ê²½ë ë webpackì´ ì¬ë¹ë ë¨ì ì미í©ëë¤.
webpack.DefinePlugin.runtimeValue í¨ììë ë ê°ì§ ì¸ìê° ììµëë¤.
첫 ë²ì§¸ ì¸ìë ì ìì í ë¹í ê°ì ë°í í´ì¼ íë function(module, key, version)ì
ëë¤.
ë ë²ì§¸ ì¸ìë ê°ìí íì¼ ê²½ë¡ì ë°°ì´ì´ê±°ë 모ëì ìºì í ì ììì¼ë¡ íìíë true íëê·¸ì¼ ì ììµëë¤. 5.26.0 ë²ì ë¶í°ë ìëì ìì±ì ê°ì§ ê°ì²´ ì¸ì를 ì¬ì©í ì ììµëë¤.
fileDependencies?: string[] í¨ìê° ìì¡´íë íì¼ ëª©ë¡ì
ëë¤.contextDependencies?: string[] í¨ìê° ìì¡´íë ëë í°ë¦¬ 목ë¡ì
ëë¤.missingDependencies?: string[] í¨ìê° ìì¡´íë ì¡´ì¬íì§ ìë íì¼ ëª©ë¡ì
ëë¤.buildDependencies?: string[] í¨ìê° ìì¡´íë ë¹ë ìì¡´ì± ëª©ë¡ì
ëë¤.version?: string | () => string í¨ìì ë²ì ì
ëë¤.const fileDep = path.resolve(__dirname, 'sample.txt');
new webpack.DefinePlugin({
BUILT_AT: webpack.DefinePlugin.runtimeValue(Date.now, {
fileDependencies: [fileDep],
}),
});BUILT_ATì ê°ì 'sample.txt'ê° íì¼ ìì¤í
ìì ë§ì§ë§ì¼ë¡ ì
ë°ì´í¸ë ìê°ì
ëë¤. (ì: 1597953013291)