2017-05-22 2 views
2

나는 간단한 webpack.config.js 전달 명령 줄 인수는

module.exports = { 
    entry: "./app.js", 
    output: { 
    filename: "bundle.js" 
    }, 
} 

이 내가 명령 행 인수를 통해 entryoutput에 대한 값을 전달하려는 webpack.config.js합니다. 그게 가능하고 어떻게 그럴 수 있니?

+0

당신이 [환경 변수] (HTTPS를 사용하여 시도 유무 : //webpack.js.org/guides/environment-variables/)? –

답변

8

webpack.config.js 또한 conf 객체를 반환 할 수있는 env 함수를 내보낼 수 있습니다.

module.exports = env => { 
    return { 
     entry: env === "production" ? "./app.js": "app-dev.js", 
     output: { 
      filename: "bundle.js" 
     }, 
    } 
}; 

을 다음과 같이 명령 줄 (또는 package.json)에서 웹팩 전화 : 당신은 그러므로 같은 웹팩 설정을 할 수 있습니다

webpack --env=production 
+0

이것은 Webpack 1에서 올바르게 작동하지 않습니까? 왜냐하면 설정 파일이 객체를 반환하지 않는다는 에러를 던지기 때문입니다. – Matho

1

argv 패키지를 사용하고 변수를 설정할 수 있습니다. module.export 전에해야합니다.

+0

고마워, 나는 분명히 그것을 시도 할 것이다. 그러나 추가 패키지 참조가 필요없는 쉬운 방법이 있습니까? 결국 webpack.config.js는 자바 스크립트 코드 일뿐입니다. – user1934212

+2

예를 들어 명령 줄을 통해 --env = test를 전달한 다음 env 함수를 내보낼 수 있습니다.이 함수는 객체 대신 직접 반환하는 함수입니다. https://webpack.js.org/configuration/configuration-types/#exporting- a-function-to-use-env – Axnyff

+0

다음 내용을 읽을 수 있습니다 : http://justindavis.co/2014/11/24/using-command-line-arguments-in-a-node-script/ – PRAISER

관련 문제