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%"