为什么在某些情况下,某些版本的nodejs上的process.env._未定义?

在nodejs中,运行一个nodejs脚本作为docker容器中的入口点,我find了process.env._ undefined,我的代码抛出了exception。 如果使用bash作为入口点并运行相同的程序,则该字段被定义。

这是在节点v4.3.2。 它在节点0.10.x上作为入口点工作正常。

两种情况下的操作系统都是Ubuntu Wily。

这个字段不能保证被定义? 我找不到这个规格。

真正的问题:我必须保护所有使用process.env字段的代码吗?

process.env._正在引用名为_

如果环境variables没有设置,那么它将是未定义的。

如果你能保证环境variables被设置,那么就不需要守卫。

如果你不能保证它被设置,那么你可以提供一个默认的…

 var myvar = process.env._ || "defaultValue";