2016-08-22 2 views
4

자주 배치되는 webpack을 사용하여 빌드 된 내부 애플리케이션이 있습니다. 버그보고를보다 쉽게하기 위해 webpack이 번들 이름에 추가하는 빌드 해시 [hash]의 환경 변수를 포함하고자합니다. 이렇게하면 사용자가 최신 릴리스에 있는지 빠르게 판단 할 수 있습니다.webpack에서 환경 변수로 빌드 해시를 전달하는 방법은 무엇입니까?

DefinePlugin을 사용하면 다음은 문자열을 보간하지 않고 문자 그대로 [hash] 문자열 만 저장합니다.

new webpack.DefinePlugin({ 
    'process.env': { 
    'HASH': JSON.stringify('[hash]') 
    } 
}) 

해시에 변수로 직접 액세스 할 수있는 방법이 있습니까? 아니면 보간 할 특정 방법이 있습니까?

답변

6

https://github.com/webpack/docs/wiki/list-of-plugins#extendedapiplugin

ExtendedAPIPlugin

new webpack.ExtendedAPIPlugin()

은 번들에 유용한 무료 바르를 추가합니다.

__webpack_hash__ 무료 var로 사용할 수있는 컴파일 해시입니다.

DefinePlugin()에서 사용할 수 없습니다 그러나 그것은 어디 번들 내부에서 액세스 할 수있는 글로벌 __webpack_hash__ 변수를 만듭니다.

var hash = __webpack_hash__; 
+0

이제 내 번들의 '__webpack_hash__'은 (는) 글로벌 변수입니다. 아니면 다른 방법으로 액세스 할 수 있습니까? – Soviut

+0

예, 그렇습니다. 나는 그것을 사용하는 또 다른 방법을 모른다. – Digger2000

+0

html 파일 "$ {__ webpack_hash__}"에서 보간법을 사용하면 해시가 올바르지 않을 수 있습니다. 그래서 나는 html에서 해시를 런타임에 설정하는 것으로 넘어 가고 있습니다. – FloG

관련 문제