我有一个NodeJS模块,可以在特定目录中对文件系统进行大量工作。我希望模块内的所有文件系统操作都相对于该目录完成 - (让我们称之为/home/me/data
)。
我意识到我可以使用process.chdir("/home/me/data");
更改当前的工作目录,但这会弄乱使用我的模块的任何其他模块的工作目录。
是否有一种方法可以让子模块拥有与其父级不同的工作目录?
我不想将变量传递给每个子模块,以附加到fs.readFile(filepath);
个调用的文件路径中。
有没有优雅的方法来实现这个目标?
P.S。子过程产卵/分叉在这里不合适。
答案 0 :(得分:0)
没有。 cwd是unix中的每个进程一个。通常,在中明确引用cwd
的代码通常被误导。它只适用于某些实用程序,如git
,即使这样,操作系统也会处理相对于绝对转换的操作。您是否考虑过使用path.resolve
扩展路径,以便在将它们传递给相关模块之前它们是绝对的?
答案 1 :(得分:0)
NPM上的'relative-fs'模块是一个解决方案https://www.npmjs.com/package/relative-fs - 它包装了fs库,使其成为相对于给定目录的方法。
免责声明:我还没有真正使用它。