在 package.json 中设置变量

时间:2021-06-22 08:51:39

标签: node.js angular npm

我想在 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

我想要一个默认端口。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

你已经非常接近答案了

<块引用>

Kevin Kreuzer May 22, 2019

例如您可以设置脚本

"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]);
}
相关问题