簡體   English   中英

無法在`process.env`中訪問Node.js環境變量

[英]Unable to access Node.js environment variables in `process.env`

嘗試使用屬性名稱訪問process.env屬性時,我undefined 參見代碼示例

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的完整輸出,請查看我制作的這個Gist

更新:

這是一個Webpack問題:

Webpack無法識別擴展的環境變量,因此符合

console.log(process.env.extended_variable)

console.log(undefined);

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

在我的特定情況下,我還使用了dotenv和babel。 所以我通過使用dotenv-webpackbabel inline dot env plugin修復了它。

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

在webpack配置內的插件中,也請推送這些設置,然后它將對您有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM