0

我正在编写一个 node.js 程序,它需要监视(添加/删除/更新)文件夹中的文件。我正在使用 chokidar 观看文件。这是代码

async function updateIndexFile() {
    console.log({ path });
    const pathArray = []

    // Chokidar Code
    const options = {
      ignored: /(^|[\/\\])\../, // ignore dotfiles
      persistent: true
    }

    // Initialize watcher.
    const watcher = chokidar.watch(path, options);

    watcher
      .on('add', async (path) => {
        console.log(`File ${path} has been added`)
        let answer = await prompt({
          type: 'list',
          name: 'adventure',  // * Key
          message: 'Choose your own adventure',
          choices: ['Indexify', 'Undo'] // * Add Feature Names Here
        })
        console.log(answer);        
      })  // Run indexify again on these files
      .on('change', path => console.log(`File ${path} has been changed`)) // Run indexify again on these files
      .on('unlink', path => console.log(`File ${path} has been removed`));  // Run indexify again on these files

但是,坚持:真实。 我

但是,我不能使用终端,因为 chokidar 正在观看文件。所以,我希望 chokidar 在后台观看文件。所以,我仍然可以提示用户更多问题并做我的事情。

4

1 回答 1

0

我知道我迟到了 3 个月,你现在可能已经找到答案了,但这是给以后来访的人的。您可以使用调用的节点模块使用 spawn 子进程。简单地将您的代码放在一个文件中并使用以下代码执行该文件

 const {spawn}=require(child_prcoess);
let detached_process = spawn(process.argv[0], ["program_name", "arg1","arg2","arg3"], { detached: true}); //launch program_name and detach it from program_name with args provided

            detached_process.unref(); //tell main program to do not wait for the completion of program_name
于 2021-06-28T18:54:37.663 回答