如何确保我的子 Node 进程从正确的目录启动?

How can I make sure my child Node process is starting from the correct directory?

我 运行 Node.js 在 windows 服务器中处理。一些 npm 包要求节点进程从正确的目录开始,例如 config——我 运行 最初遇到这个问题是因为我将任务管理器任务设为 运行 a .bat 启动节点进程的文件,但如果我没有明确设置 TaskManager 任务从我的 package.json 的包含文件夹开始,配置将找不到要加载的正确文件。

因此,如果我从另一个节点进程中启动一个节点进程,通过类似 require('child_process').fork 的方式,我是否仍然需要确保它是从特定目录调用的?我该怎么做?

如果您在 child_process 上执行 .fork().exec().spawn(),它们都采用一个选项对象,该对象又具有 .cwd 属性。例如

const cp = require('child_process')
const child = cp.spawn('./whatever', { cwd: '/path/to/dir' })