javascript - 在另一个 NodeJS 进程中执行 JS 文件(带有日志等)

标签 javascript node.js asynchronous command-line-interface

这是我的问题,我想创建一个自动运行测试的 CLI。没有 CLI,我可以使用 Node 命令完美地运行所有内容:

node test.js

基本上,我想做与之前的命令完全相同的事情,所以我在谷歌上搜索了一种可以做到这一点的技术。我发现了这个:

#!/usr/bin/env node
'use strict';
 const options = process.argv;
 const { execFile } = require('child_process');
 const child = execFile('node', ['../dist/test.js'], (error, stdout, stderr) => {
     if (error) {
        throw error;
     }
     console.log(stdout);
 });

此方法对我不起作用,因为在 test.js 文件中,我使用 ora包裹。由于此包正在制作实时动画,因此它不会出现在 stdout 中。

有什么方法可以使用 Node 实时执行(没有子进程)我的 test.js 吗?我对其他方法持开放态度,但我想在 NPM 上发布 CLI,因此请记住它必须是 JavaScript 😊。

您可以找到我在 GitHub 上讨论过的每个文件。通常,您不需要此链接,但如果您需要仔细查看,我会将其提供给您。

最佳答案

在需要定义它的模块之后,您应该简单地从 CLI 代码中调用您的 test() 函数。看看 mocha 和 jasmine:您会发现,虽然这两个工具都提供了 CLI,但它们还提供了从任意 JS 代码调用测试框架的说明。

关于javascript - 在另一个 NodeJS 进程中执行 JS 文件(带有日志等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508767/

相关文章:

java - 移动端代码编程

node.js - 如何为发布订阅实例化多个Redis连接(node.js + node_redis)

ios - 找出我的异步调用何时完成

javascript - 加载 url 时隐藏 UL

javascript - 如何将 getter 添加到现有对象

javascript - 异步回调不会被调用

具有附加进程的 Node.js 集群

ios - 从 Swift 函数中的异步调用返回数据

c# - 当方法返回 void 时,是否与任务相同?

javascript - 倒计时 Javascript 无法在 Chrome 扩展上运行