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

标签 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 HOSTNAME"

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

根据documentation主机名工具

Displays the host name portion of the full computer name of the computer.

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

我无法让它工作。

关于node.js - 如何在 Windows 上的 npm 脚本中使用环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47578304/

相关文章:

git - NPM 安装 : Git URL dependency error in package. json

javascript - Heroku 未使用 React 应用程序更新配置变量

windows - 如何使用特定环境值运行 go get 命令?

node.js - 在 node.js 请求上连接 GZip/Deflate 数据

node.js - 通过在 Docker 容器中缓存包来加速构建

javascript - 是否可以在 Electron electron-quick-start JS 应用程序中禁用放大/缩小功能?

javascript - 在express js 4中分离路由器文件时出错

node.js - n( Node 版本管理器)安装后不工作 - "bash: n: command not found"

node.js - 如何使用Asar打包应用程序,但不包括Electron

scala - 为 NetBeans 设置 Scala - 错误