Windows PowerShell中的NODE_ENV返回undefined

时间:2018-03-02 19:55:09

标签: node.js windows powershell command-line

Windows路径设置为nodejs。但是我无法阅读process.env.NODE_ENV ,除非使用命令提示符AS Admin。

我希望能够在Windows PowerShell中设置和读取NODE_ENV。

1 个答案:

答案 0 :(得分:1)

环境变量可以在Windows MachineUserProcess中的3个级别设置,这些级别在子进程启动时从父进程继承。当然User级别的只有在该用户的上下文中运行的进程才会继承。

另一方面,如果父进程(例如: System )更改了变量,则这些更改不会自动传播到已经运行的子进程(例如: PowerShell ,或node),除非您重新启动这些。

凭借这种感觉,PowerShell还会自动继承env-vars,您可以在env: PSDrive下看到:

ls env:\*

如果您无法看到新变量并希望避免重启,您还可以使用[System.Environment] .NET类在已经运行的控制台中读取和填充它,例如:

$env:NODE_ENV = [System.Environment]::GetEnvironmentVariable('NODE_ENV',[System.EnvironmentVariableTarget]::Machine)