Node
ë¤ìì Node.js ìµì ì í¹ì Node.js globalsì í´ë¦¬íí ì§ mockí ì§ ì¤ì í©ëë¤.
ì´ ê¸°ë¥ì webpack ë´ë¶ NodeStuffPlugin íë¬ê·¸ì¸ìì ì ê³µí©ëë¤.
node
false object
webpack.config.js
export default {
// ...
node: {
global: false,
__filename: false,
__dirname: false,
},
};node ìµì
ì falseë¡ ì¤ì íì¬ NodeStuffPlugin íë¬ê·¸ì¸ì ìì í ë ì ììµëë¤.
node.global
boolean 'warn'
ì´ ê°ì²´ì ì íí ëìì Node.js 문ì를 ì°¸ê³ íì¸ì.
ìµì :
true: íê²½ìì ì§ìíë ê²½ì° í´ë¦¬íì ì ê³µíê±°ëglobalThis를 ì¬ì©íë ë°©ë²ì ëí ìì¸í ë´ì©ìenvironmentìµì ì ì°¸ê³ íì¸ì.false: ì무ê²ë ì ê³µíì§ ììµëë¤. ì´ ê°ì²´ë¥¼ ììíë ì½ëëReferenceErrorê° ë°ìí ì ììµëë¤.'warn':globalì ì¬ì©í ë ê²½ê³ íì.
node.__filename
boolean 'mock' | 'warn-mock' | 'node-module' | 'eval-only'
ìµì :
true:contextìµì ì ìëì ì¸ ì ë ¥ íì¼ì dirname.false: Webpackì__filenameë°import.meta.filenameì½ëì ìí¥ì ì£¼ì§ ìì¼ë¯ë¡ ì¼ë°ì ì¸ Node.js__filenameë°import.meta.filenameëìì ìíí©ëë¤. Node.js íê²½ìì ì¤íë ë ì¶ë ¥ íì¼ì íì¼ ì´ë¦ì ëë¤.'mock': ê³ ì ë ê°'/index.js'.'warn-mock':'/index.js'ì ê³ ì ë ê°ì ì¬ì©íì§ë§ ê²½ê³ ë¥¼ íìí©ëë¤.'node-module':output.moduleì´ íì±íë ê²½ì° CommonJS 모ëì__filenameì ë°ê¾¸ê³ ES 모ëìimport.meta.filenameì½ë를fileURLToPath(import.meta.url)ë¡ ë°ê¿ëë¤.'eval-only':__filename/import.meta.filenameì í´ìì ì¤í ìì ì Node.js ë°íìì¼ë¡ 미루ë,require/importì²ë¼ ìì± ê³¼ì ìì íê°íì¬ ëª¨ëì ì ëë¡ í´ìí©ëë¤.output.moduleìµì ì ë°ë¼__filenameìimport.meta.filenameì¼ë¡, ëë ê·¸ ë°ëë¡ ë°ê¿ëë¤(íê²½ììimport.meta.filenameì ì§ìíì§ ìë ê²½ì°,import.meta.urlì ì¬ì©íì¬ ì´ ê°ì ê°ì ¸ì¤ë ëì²´ ë°©ë²ì´ ì¬ì©ë©ëë¤).
기본ê°ì ë¤ìí targetì ìí¥ì ë°ì ì ììµëë¤.
targetì´'nodeëë ë ¸ëì ì ì¬í íê²½(async-node,electron) ëë í¼í© ëì(webê³¼nodeí¨ê»)ì¼ë¡ ì¤ì ë ê²½ì° ê¸°ë³¸ê°ì'eval-onlyì ëë¤.targetì´'webëë ì¹ê³¼ ì ì¬í íê²½ì¼ë¡ ì¤ì ë ê²½ì° ê¸°ë³¸ê°ì'mockì ëë¤.
node.__dirname
boolean 'mock' | 'warn-mock' | 'node-module' | 'eval-only'
ìµì :
true:contextìµì ì 기ì¤ì¼ë¡ í ì ë ¥ íì¼ì ëë í°ë¦¬ ì´ë¦ì ëë¤.false: Webpackì__dirnameë°import.meta.dirnameì½ë를 ìì íì§ ìì¼ë¯ë¡ ì¼ë°ì ì¸ Node.js__dirnameë°import.meta.dirnameëìì ìíí©ëë¤. Node.js íê²½ìì ì¤íí ë ì¶ë ¥ íì¼ì ëë í°ë¦¬ ì´ë¦ì ëë¤.'mock: ê³ ì ê°'/'ì ëë¤.'warn-mock': ê³ ì ê°'/'를 ì¬ì©íì§ë§ ê²½ê³ ë¥¼ íìí©ëë¤.'node-module':output.moduleì´ íì±íë ê²½ì° CommonJS 모ëì__dirnameìfileURLToPath(import.meta.url + "/..")ë¡ ë°ê¿ëë¤.'eval-only':__dirname/import.meta.dirnameì í´ìì ì¤í ìì ì Node.js ë°íìì¼ë¡ 미루ì§ë§,require/importì ê°ì´ ìì± ë¨ê³ìì íê°íì¬ ëª¨ëì ì¬ë°ë¥´ê² í´ìí©ëë¤.output.moduleìµì ì ë°ë¼__dirnameìimport.meta.dirnameì¼ë¡, ëë ê·¸ ë°ëë¡ ë°ê¿ ì ììµëë¤(íê²½ììimport.meta.filenameì ì§ìíì§ ìë ê²½ì°,import.meta.urlì ì¬ì©íì¬ ì´ ê°ì ê°ì ¸ì¤ë ëì²´ ë°©ë²ì´ ì¬ì©ë©ëë¤).
기본ê°ì ë¤ë¥¸ targetì ìí¥ì ë°ì ì ììµëë¤.



