node.js - NodeJS pkg如何指定主函数
问题描述
基本上我正在使用名为pkg
This one的 npm 包进行一些测试
如果我通过命令提示符运行它,我能够成功编译并且程序运行良好,但是当我尝试双击可执行文件时,我会打开一个命令提示符窗口几秒钟然后再次关闭,这是我尝试用它测试的代码
let prompt = require("prompt-sync")
async function run() {
let result = await a()
console.log(result)
let b = await prompt.query("input test ")
console.log(b)
}
run();
当我通过命令提示符运行编译的应用程序时,这一切都很好,但是当我双击应用程序时不起作用
到目前为止我已经尝试过:
- 尝试了可能使用的不同函数名称(例如 main()、run() 等)
- 尝试了不同的节点目标
- 尝试查看 v8 标志(虽然有很多,所以我可能错过了一些)
任何帮助表示赞赏
解决方案
好的,所以经过一些测试后,我发现我可以执行以下操作:
- 用 while true 创建一个 while 循环,然后为了防止由于 while true 语句而打开程序的许多实例,我只是在 while true 之外定义一个变量,然后我放一个 if 语句检查值是否已更改如果不是,它将运行 run 函数,否则它将跳过。
let i = 0;
function run() {
console.log("hi")
}
while (true) {
if(i === 0) {
run();
i++;
}
}
像这样,它只会运行程序一次,而不会只是瞬间弹出并关闭。
这不完全是我想要的,但它的工作方式相同,这已经足够好了。
推荐阅读
- javascript - 当我尝试使用 getUserMedia() api 流式传输我的网络摄像头视频时,出现黑屏
- android - Android 房间库和加密组合
- python - pandas python to onehot标记具有相同值集的几列
- authorization - Apache Nifi:无法找到初始管理员来播种策略
- php - 在字符串中解码“=C3=A4”
- javascript - 如何使用 VBA 在提示“选择上传文件”时上传文件
- php - php比较值是否大于
- javascript - 在更改选项的选定属性后强制选择刷新
- python - 在 Docker 容器中调试 Python
- umbraco7 - ContentTypeService 找不到别名为“homePage”的内容类型