Реагировать | webpack | получение process.env.NODE_ENV == undefined в Azure

Используемые ниже сценарии в package.json для установки NODE_ENV при создании сборки.

"scripts": {
    "build-dev": "set NODE_ENV=development && webpack --config webpack.config.prod",
    "build-client": "set NODE_ENV=production && webpack --config webpack.config.prod",
}

локально, если я запускаю npm run build-dev или build-client, он работает правильно и может читать правильный NODE_ENV в файле webpack.config.common.js.

Но если я попробую ту же команду для создания сборки в конвейере Azure, тогда process.env.NODE_ENV вернется как undefined

Не уверен, почему в Azure process.env.NODE_ENV возвращается как undefined. Может ли кто-нибудь помочь понять и что нужно сделать в Azure, чтобы прочитать правильный NODE_ENV, который был установлен во время сборки.

Ниже приведены подробные сведения о конвейере

# Node.js
# Build Data Direct UI project with npm.
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

trigger: none
#- master

pool: AGENTS

variables:
  system.debug : true
  
steps:

- task: Docker@0
  displayName: 'Build an Image'
  inputs:
    azureSubscription: 'CIS-DEV-001-SC'
    azureContainerRegistry: `{"loginServer":"acrncusd.azurecr.io", "id" : "acrncusd"}`



- task: Docker@0
  displayName: 'Push Image'
  inputs:
    azureSubscription: 'CIS-DEV-001-SC'
    azureContainerRegistry: `{"loginServer":"acrncusd.azurecr.io", "id" :  
    "acrncusd"}`
    action: 'Push an image'
    imageName: `$(Build.Repository.Name):$(Build.BuildId)`

person sagar    schedule 17.08.2020    source источник
comment
Что будет, если убрать пробелы до и после &&?   -  person LoLance    schedule 18.08.2020
comment
с удалением пробелов тот же результат.   -  person sagar    schedule 18.08.2020


Ответы (1)


Если вы используете агент, размещенный в Windows, мы должны удалить пробел перед и после &&.

Пытаться:

"scripts": {
    "build-dev": "set NODE_ENV=development&&webpack --config webpack.config.prod",
    "build-client": "set NODE_ENV=production&&webpack --config webpack.config.prod",
}
person LoLance    schedule 18.08.2020
comment
Привет, Лэнс, да, уже пробовал добавлять и удалять пробелы до и после &&, но при сборке конвейера Azure при чтении файла process.env.NODE_ENV внутри файла webpack.config.js, возвращающего значение undefined. Если я попытаюсь создать его локально, я смогу получить доступ к правильному процессу process.env.NODE_ENV. - person sagar; 18.08.2020
comment
@sagar Какой агент вы используете, Windows или Linux, размещенный на сервере Microsoft или самостоятельно? Пожалуйста, подумайте о добавлении подробностей об определениях ваших сборок и о том, на каком этапе возникает ошибка, чтобы я мог проверить вас напрямую. - person LoLance; 18.08.2020
comment
Спасибо, Лэнс, мы используем агент Linux и его собственный хостинг. и то, что я пытаюсь сделать здесь во время сборки на основе NODE_ENV, прочитайте файл .env, который содержит подробную информацию о env. Пожалуйста, дайте мне знать, если понадобится дополнительная информация. - person sagar; 19.08.2020
comment
Не могли бы вы поделиться некоторыми подробностями о своем конвейере, например эта ветка, мне нужны некоторые подробности, чтобы воспроизвести вашу проблему. И каков результат, если вы используете конвейер с помощью агента windows-latest, может ли та же задача успешно выполняться? - person LoLance; 19.08.2020
comment
По вашему запросу ниже приведены сведения: trigger: none variables: system.debug: true steps: - task: Docker @ 0 displayName: 'Build an Image' входные данные: azureSubscription: '001-SC' azureContainerRegistry: '{loginServer: acrsd. azurecr.io, id: acrsd} '- задача: Docker @ 0 displayName:' Push Image 'входы: azureSubscription:' 001-SC 'azureContainerRegistry:' {loginServer: acrsd.azurecr.io, id: acrsd} 'action:' Отправьте изображение 'imageName:' $ (Build.Repository.Name): $ (Build.BuildId) ' - person sagar; 19.08.2020
comment
Как выглядит ваш файл докеров? Кажется, эта проблема возникает на этапе сборки докера. - person LoLance; 24.08.2020
comment
На самом деле это соответствует формату, который вы упомянули выше, прокомментируйте эту ветку, но в комментарии мы можем поместить максимум 550 символов, поэтому вставьте их, как указано выше, удалив пробелы. - person sagar; 24.08.2020
comment
@sagar Рекомендуется добавить интересующие вас детали. Вы можете увидеть кнопку edit под своим вопросом, вы можете отредактировать вопрос, чтобы добавить детали ~ - person LoLance; 24.08.2020
comment
Спасибо за информацию. Обновлены данные о рассматриваемом трубопроводе. Пожалуйста, дайте мне знать, если понадобится дополнительная информация. - person sagar; 25.08.2020
comment
Каков результат, если вы создадите образ докера локально, как this, я думаю возможно, проблема в самом созданном образе. - person LoLance; 25.08.2020