DefinePlugin 에서
TWO가 전역변수로 접근된다는 의미는 어플리케이션단에서의 의미입니다. 플러그인은 번들링된 이후에 적용되기 때문에, DefinePlugin은 번들된 js에서 TWO를 찾아 값을 변경합니다. new webpack . DefinePlugin ({ ONE : 'alert("POP! ONE")' , TWO : JSON . stringify ( '1+1' ), 'api.domain' : JSON . stringify ( 'http://dev.com' ) }) 위와 같이 설정했을때 아래의 코드를 빌드하고 실행해보면, import './app.css' ; import nyancat from './nyancat.jpg' ; document . addEventListener ( 'DOMContentLoaded' ,() => { document . body . innerHTML = ` (사진) ${ nyancat } "/> ` ; } ) ONE console . log ( TWO ); console . log ( api . domain ); 순서대로 alert창에 "POP! ONE"이 출력되고, 콘솔에는 1+1 과 http://dev.com가 출력됨을 확인하실 수 있습니다. 번들된 파일에 ONE, TWO, api.domain의 정보를 선언한 Define값으로 변경하고 변경된것은 브라우저의 자바스크립트로 실행됩니다. 만약 Define에 ONE에 대한 명시가 없다면 브라우저는 ONE이 정의되지 않았다는 에러를 콘솔에서 확인할 수 있습니다. window,TWO에 변수를 넣고 싶으시다면 TWO : 'window.TWO=2' , 이런식으로 사용될 수 있을것 같습니다.