다음의 Node.js 옵션은 특정 Node.js globals을 폴리필할지 mock할지 설정합니다.
이 기능은 webpack 내부 NodeStuffPlugin 플러그인에서 제공합니다.
false object
webpack.config.js
module.exports = {
//...
node: {
global: false,
__filename: false,
__dirname: false,
},
};node 옵션을 false로 설정하여 NodeStuffPlugin 플러그인을 완전히 끌 수 있습니다.
boolean 'warn'
이 객체의 정확한 동작은 Node.js 문서를 참고하세요.
옵션:
true: 환경에서 지원하는 경우 폴리필을 제공하거나 globalThis를 사용하는 방법에 대한 자세한 내용은 environment 옵션을 참고하세요.false: 아무것도 제공하지 않습니다. 이 객체를 예상하는 코드는 ReferenceError가 발생할 수 있습니다.'warn': global을 사용할 때 경고 표시.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입니다.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의 영향을 받을 수 있습니다.