2016-08-02 2 views
0

Webpack을 사용하여 프로덕션을 위해 번들 된 node.js 앱이 있습니다.Webpack 번들 동적 클라이언트 구성

다시 번들하지 않아도 이미 번들을 가지고 나면 동적 구성을 추가하는 방법에 문제가 있습니까?

서버 측에서는 노드 env 변수 만 사용할 수 있지만 클라이언트 번들에서는 어떻게 수행 할 수 있습니까? 특히 우리는 브라우저 모듈에 API 서버 주소를 알려줘야합니다.

구성과 함께 js/json 파일을 사용하면 구성 값이 번들에 삽입되므로 나중에 번들 파일을 열지 않고 수동으로 찾고 바꾸는 것이 아니라 편안하게 변경할 수 있습니다.

express-expose와 같은 것을 사용하면 다른 네트워크 요청으로 인해 데이터를 가져오고 서버 주소가 동적이기 때문에 원하는 것이 아닙니다.

노드 설정 등

+0

이 점이 해결책이 될지 확인하십시오. http://stackoverflow.com/questions/35408898/why-is-my-webpack-bundle-js-and-vendor-bundle-js-so-incredibly-big/35413001 # 35413001 –

+0

@ViniciusVieira 브라우저에서 사용할 수없는 환경 변수를 사용하는 방법을 보여줍니다. – omerts

+0

필요한 상태에 대해 다른 스크립트를 사용하여 다른 번들을 만들 수 없습니까? –

답변

1

당신은 externals 옵션의 창조적 인 사용을 할 수 있습니다 클라이언트 측에서 작동하지 않습니다 : 당신이 당신의 구성에 그냥 할 수있는 추가하는 경우

externals: [ 
    { appConfig: 'var appConfig' }, 
], 

당신의 웹 서버 번들을로드하기 전에 대체로 var appConfig = {"config":"value"};이라는 스크립트 태그를 추가하면 간단한 require('appConfig')이이를 가져옵니다.

+1

답변 해 주셔서 감사합니다. 우리는 실제로 서버가 전역 설정 변수들과 함께 번들 전에 스크립트를 추가하도록 만들었지 만, 당신의 방법으로 우리는 webpack을 통해 그 동작을 제어 할 수 있습니다. – omerts

관련 문제