Node.js 如何在windows上的npm脚本中使用环境变量?

Node.js 如何在windows上的npm脚本中使用环境变量?,node.js,npm,environment-variables,Node.js,Npm,Environment Variables,在我的package.json文件中,我有一个如下定义的脚本: "scripts": { "start": "webpack-dev-server --open --config webpack.dev.js" } 我想把我的主机名传递给它,它是一个名为hostname的Windows环境变量。我尝试了以下解决方案,但两种方案似乎都不起作用: "start": "webpack-dev-server --open --config webpack.dev.js --host HOSTN

在我的
package.json
文件中,我有一个如下定义的脚本:

"scripts": {
    "start": "webpack-dev-server --open --config webpack.dev.js"
}
我想把我的主机名传递给它,它是一个名为
hostname
的Windows环境变量。我尝试了以下解决方案,但两种方案似乎都不起作用:

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


我缺少什么?

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

"start": "webpack-dev-server --open --config webpack.dev.js --host %COMPUTERNAME%"
根据主机名工具

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

因此,
COMPUTERNAME
可能无法完全显示您想要的内容,但我愿意试一试。有一些关于
COMPUTERNAME
的信息

我尝试了一些巧妙的技巧,例如将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%"
“start”:“hostname>host.txt&&set/P host=

我无法让它工作。

带有
%HOSTNAME%
的那一个对我来说很好。如果我在cmd中只键入HOSTNAME,它可以工作,但不能通过脚本或%:(我在测试时出错。我用
set HOSTNAME=asdf
手动设置HOSTNAME变量,这覆盖了HOSTNAME工具。请参阅下面的答案。
"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%"