Как использовать переменные process.env в разумных пределах с помощью веб-пакета - PullRequest
0 голосов
/ 19 декабря 2018

Вот в чем дело: с помощью веб-пакета вы можете предоставить переменные окружения (через DefinePlugin или EnvironmentPlugin), чтобы они могли быть использованы кодом типа process.env.MY_VAR.Это работает, что они будут встроены в реальные значения во время сборки.

Но у меня возникли проблемы при попытке использовать их в Reason.Bucklescript имеет модуль Node.Process, но когда вы используете Node.Process##env, он переносится в

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

Так что он не будет захвачен веб-пакетом и встроен.Итак, что я могу использовать, чтобы добиться того, чтобы он был перенесен на var myVar = process.env.MY_VAR?

1 Ответ

0 голосов
/ 19 декабря 2018

Я на самом деле не думаю, что это очень хороший вариант использования для %raw, но лучше просто использовать обычный external:

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

Это имеет пару преимуществ по сравнению с %raw:

  • external проверит, что это синтаксически допустимый глобальный идентификатор.С %raw все идет, и нет никакой гарантии, что он выдаст правильный JavaScript.
  • external s встроены.Это означает, что он оценит, где он используется, в случае, если значение изменяется или отличается, например, в разных модулях.Он также защищает от мутации косвенной глобальной переменной.

Ничто из этого не имеет большого значения, вероятно, но я не вижу никакой выгоды от использования %raw по сравнению с external, так что можета сделай это правильно.

...