无法在`process.env`中访问Node.js环境变量

时间:2019-07-07 11:07:45

标签: javascript webpack babel

尝试使用属性名称访问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的完整输出,请查看this Gist which I made

更新:

这是一个Webpack问题:

Webpack无法识别扩展环境变量,因此已得到遵守

console.log(process.env.extended_variable)

console.log(undefined);

2 个答案:

答案 0 :(得分:0)

解决方案: 如果您使用的是Webpack,则可以使用Webpack EnvironmentPlugin

在我的特定情况下,我也在使用dotenv和babel。因此,我通过使用dotenv-webpackbabel inline dot env plugin对其进行了修复。

答案 1 :(得分:0)

 plugins.push(new webpack.DefinePlugin({
      process: {
        env: {
          node: JSON.stringify(process.env.node),
        },
      },
    }));

在您的webpack配置内的插件中也推送这些设置,然后它将对您有用。