如何在Windows上的npm脚本中使用环境变量?

时间:2017-11-30 16:37:46

标签: node.js npm environment-variables

在我的group文件中,我有一个像这样定义的脚本:

package.json

我想将其传递给我的主机名,这是一个名为"scripts": { "start": "webpack-dev-server --open --config webpack.dev.js" } 的Windows environemnt变量。我尝试了以下解决方案,但似乎没有一个解决方案:

HOSTNAME

"start": "webpack-dev-server --open --config webpack.dev.js --host HOSTNAME"

我错过了什么?

1 个答案:

答案 0 :(得分:1)

Windows上的正确语法是%envvariable%。它不适合您,因为hostname是一个输出主机名的应用程序(hostname.exe),而不是环境变量。一种解决方案是使用变量COMPUTERNAME代替。

"start": "webpack-dev-server --open --config webpack.dev.js --host %COMPUTERNAME%"

根据documentation主机名工具

  

显示计算机完整计算机名称的主机名部分。

所以COMPUTERNAME可能不完全显示你想要的东西,但我会试一试。有关COMPUTERNAME here的一些信息。

我尝试了一些巧妙的技巧,比如将hostname.exe的输出存储在一个新的环境变量中:

"start": "hostname > host.txt && set /P HOST= < host.txt && webpack-dev-server --open --config webpack.dev.js --host %HOST%"
"start": "for /f %i in ('hostname') do set HOST=%i && webpack-dev-server --open --config webpack.dev.js --host %HOST%"

我无法让它发挥作用。