Невозможно получить доступ к переменным среды Node.js в `process.env` - PullRequest
1 голос
/ 07 июля 2019

Я получил undefined при попытке доступа к process.env свойствам по имени свойства. Смотрите пример кода

const foo = Object.keys(process.env)[0] // 'node'
console.log(foo === 'node') // true
console.log(process.env.node) // undefined
console.log(process.env['node']) // undefined
console.log(process.env[foo]) // path to node

process.env содержит node:

{ 
  node: '/Users/jasper.wang/.nvm/versions/node/v8.16.0/bin/node',
  // ...
}

Для полного вывода process.env взгляните на этот Гист, который я сделал .

Обновление:

это проблема Webpack:

Webpack не распознает расширенные переменные среды, поэтому он соответствует

console.log(process.env.extended_variable)

до

console.log(undefined);

Ответы [ 2 ]

0 голосов
/ 08 июля 2019
 plugins.push(new webpack.DefinePlugin({
      process: {
        env: {
          node: JSON.stringify(process.env.node),
        },
      },
    }));

В ваших плагинах внутри конфигурации webpack также нажмите эти настройки, тогда они будут работать для вас.

0 голосов
/ 07 июля 2019

Решение: Если вы используете Webpack, вы можете использовать Webpack EnvironmentPlugin

В моем конкретном случае я также использую dotenv и babel.Поэтому я исправил это, используя dotenv-webpack и плагин для встроенных точек Babel .

...