首页 > 解决方案 > 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();

当我通过命令提示符运行编译的应用程序时,这一切都很好,但是当我双击应用程序时不起作用

到目前为止我已经尝试过:

  1. 尝试了可能使用的不同函数名称(例如 main()、run() 等)
  2. 尝试了不同的节点目标
  3. 尝试查看 v8 标志(虽然有很多,所以我可能错过了一些)

任何帮助表示赞赏

标签: node.js

解决方案


好的,所以经过一些测试后,我发现我可以执行以下操作:

  1. 用 while true 创建一个 while 循环,然后为了防止由于 while true 语句而打开程序的许多实例,我只是在 while true 之外定义一个变量,然后我放一个 if 语句检查值是否已更改如果不是,它将运行 run 函数,否则它将跳过。

let i = 0;
function run() {
    console.log("hi")
}
while (true) {
    if(i === 0) {
        run();
        i++;
    }
}

像这样,它只会运行程序一次,而不会只是瞬间弹出并关闭。

这不完全是我想要的,但它的工作方式相同,这已经足够好了。


推荐阅读