Не удается получить доступ к свойству process.env - PullRequest
0 голосов
/ 14 декабря 2018

Я использую веб-пакет для сборки своего приложения Vue, которое обслуживается nginx в контейнере ubuntu.В моем файле конфигурации рабочего пакета я делаю следующее:

function resolve (dir) {
  return path.join(__dirname, '..', dir)
}

function injectConfigObject() {
  // This function reads the global
  // config yaml from the config folder.
  // Note that in production, we do not
  // have access to the config folder,
  // since the root folder will be on the
  // same level als the frontend folder.
  // Therefore the path is different for prod.
  let obj = {}
  let configPath = process.env.NODE_ENV == 'production' ? resolve('global_config.yml') : resolve('../config/global_config.yml')
  try {
    obj = yaml.load(configPath)
  } catch(e) {
    console.log('e', e)
  }

  return obj

}

В плагинах:

new webpack.DefinePlugin({
  'process.env': {
    'NODE_ENV': JSON.stringify(process.env.NODE_ENV),
    'CONFIG': JSON.stringify(injectConfigObject())
  }

Теперь, когда я использую console.log для этого объекта process.env.CONFIG, яприятно видеть все свойства, например

{…}
​
CONFIG: {…}
​​
allowed_subtypes: Object { string: (3) […], float: (1) […], int: (1) […], … }
​​
na_values: Array(16) [ "", "#N/A", "#N/A N/A", … ]
​​
type_mapping: Object { inferred: (2) […], string: (2) […], float: (2) […], … }
​​
<prototype>: Object { … }
​
NODE_ENV: "production"
​
TEST: "test"

, но когда я пытаюсь получить доступ к любому свойству, например, process.env.CONFIG.allowed_subtypes, я получаю неопределенное значение.

Я попробовал все, как было предложенов других сообщениях SO, например,

  • с использованием setTimeOut(function() { // access the props here }, 100}
  • с использованием Object.assign({}, process.env.CONFIG.allowed_subtypes)
  • с использованием JSON.parse(JSON.stringify(process.env.CONFIG.allowed_subtypes))

Ничего не работает,Странно то, что я делаю то же самое в моей конфигурации dev (используя npm run dev), и в этих сборках я могу получить доступ к этим свойствам объекта.У кого-нибудь есть идея?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...