Запустите `source` из package.json, чтобы установить переменные среды для запуска скрипта

Например, чтобы получить текст из элемента управления потоком пользовательского интерфейса:

Private Delegate Function GetControlTextInvoker(ByVal ctl As Control) As String

Private Function GetControlText(ByVal ctl As Control) As String
    Dim text As String

    If ctl.InvokeRequired Then
         text = CStr(ctl.Invoke(New GetControlTextInvoker(AddressOf GetControlText), _
                           ctl))
    Else
        text = ctl.Text
    End If

Return text
End Function
0
задан suther 6 March 2019 в 13:46
поделиться

1 ответ

Я нашел уродливый обходной путь ... но был бы рад, если бы кто-нибудь мог показать мне лучший способ:

В package.json я объявил две настройки. Тот, у которого есть основной сценарий, которому нужны все еще полученные переменные ENV, и одна запись сценария, которая загружает сначала среду, а затем запускает задачу основного сценария в этой среде.

Трудно объяснить, легко показать ... посмотрите на это:

"scripts": {
...
   "IOS_internalTest": "source ./fastlane/ios_env && IOS_DEPLOY_TYPE=deploy_internalTest npm run IOS_runDeployment",
   "IOS_betaTest": "source ./fastlane/ios_env && IOS_DEPLOY_TYPE=deploy_betaTest npm run IOS_runDeployment",
   "IOS_runDeployment": "bundle exec fastlane ios $IOS_DEPLOY_TYPE",
...
} 

Первая запись source моего файла, где находятся все мои экспорты ENV (например, export BIMBOM=FooBar). выполняет npm run IOS_doInternalTest. Поскольку он запускается в том же контексте оболочки, переменные ENV, которые я source редактировал ранее, все еще доступны.

Слава вам, если вы получили решение в одну строку

0
ответ дан suther 6 March 2019 в 13:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: