>

거래는 다음과 같습니다. webpack을 사용하면 DefinePlugin 를 통해 환경 변수를 제공 할 수 있습니다  또는 EnvironmentPlugin ) 그래서 process.env.MY_VAR 와 같은 코드로 소비 될 수 있습니다. . 빌드 타임에 실제 값으로 인라인됩니다.

그러나 이유에서 소비하는데 어려움을 겪고 있습니다. 버클 스크립트는 Node.Process 모듈이지만 Node.Process##env 를 사용하는 경우  번역되어

var process = require("process")
var myVar = process.env["MY_VAR"]

따라서 웹팩에서 가져 와서 인라인되지 않습니다. 그래서 var myVar = process.env.MY_VAR 에 traspiled됩니다 달성하기 위해 무엇을 사용할 수 있습니까 ?


  • 답변 # 1

    실제로 이것이 %raw 에 대한 좋은 사용 사례라고 생각하지 않습니다. , 그러나 오히려 평범한 external 를 사용하려고합니다. :

    [@bs.val] external token : string = "process.env.TOKEN";
    
    

    이것은 %raw 보다 몇 가지 이점이 있습니다 :

    external  구문 상 유효한 글로벌 식별자인지 확인합니다. %raw 와 함께 , 모든 것이 진행되며 올바른 JavaScript를 생성한다고 보장 할 수 없습니다.

    external 인라인됩니다. 즉, 예를 들어 값이 변경되거나 다른 모듈에서 다른 경우 사용 위치를 평가합니다. 또한 간접 전역 변수의 돌연변이로부터 보호합니다.

    아무것도 그다지 중요하지 않지만 %raw 를 사용하면 어떤 이점도 얻지 못합니다   external 이상 제대로 작동 할 수도 있습니다.

  • 이전 javascript - lodash를 사용하여 두 날짜 사이의 값을 필터링하려면 어떻게합니까?
  • 다음 ansible - 파이썬 요청에서 헤더 오류가 있지만 헤더가 정의되었습니다