以类似命令的方式运行 NodeApp

Run NodeApp in command-like way?

本文关键字:方式 运行 NodeApp 命令      更新时间:2023-09-26

NodeApp 的NLContext能够使用 evaluateScript 来解释 JS。同时它支持argvenv

现在有效的方法:

  • process: .argv, .env, .exit((, .nextTick((

如何以类似命令的方式运行 NodeApp 并传递命令行参数?与环境有关。变量也是。

在深入研究源代码后,我找到了答案:没有传递argvenv作为NSProcessInfo.processInfo.environment传递(参见NLContext.m(:

JSValue *process = [JSValue valueWithObject:@{
        @"platform": @"darwin",
        @"argv":     @[],
        @"env":      NSProcessInfo.processInfo.environment,
        @"execPath": NSBundle.mainBundle.executablePath,
        @"_asyncFlags": @{},
        @"moduleLoadList": @[]
    } inContext:context];

要修改它们,需要在调用完成之前添加 setter 并传递变量NLContext.attachToContext

PS. -1 对 2 名"接近"选民的业力。希望我的问题和答案对某人有所帮助