我想在 package.json 中设置环境变量。我已经达到了一个点,但我无法实现我理想中的目标:
{
"scripts": {
"start": "ng serve --port $my_port",
"electron:serve": "wait-on tcp:$my_port && npx electron . --reload",
"start:desktop": "npm-run-all -p electron:serve start"
}
}
例如,如果我运行:
npm run start:desktop --port=4201
我可以得到我想要在 4201 端口上启动服务并在启动电子之前等待该端口的结果。
我管理的内容如下: { “脚本”:{ "start": "cross-env-shell ng serve --port $npm_config_port", "electron:serve": "cross-env-shell wait-on tcp:$my_port && npx electron . --reload", "start:desktop": "npm-run-all -p electron:serve start" } }
哪个工作得很好,但是如果我没有任何端口,即
npm run start:desktop
我想要一个默认端口。
有什么想法吗?
谢谢
答案 0 :(得分:0)
你已经非常接近答案了
<块引用>例如您可以设置脚本
"start": "http-server -p $PORT"
PORT
变量现在由脚本调用者控制。
因此,您可以设置所需的 PORT
并将其传递给您的脚本,如下所示:
PORT=3000 npm run start
设置默认变量如下:
"server:start": "http-server -p ${PORT:-8080}"
最后,如果您使用自定义脚本文件,您可以按如下方式访问端口:
if (process.argv.indexOf('-p') && process.argv[process.argv.indexOf('-p') + 1]) {
console.log('port', process.argv[process.argv.indexOf('-p') + 1]);
}