最佳答案
假设我在项目的根目录中有一个名为 file.xml
的文件。
假设我在 test/中有一个名为“ test.js”的测试文件
const file = fs.readFileSync("../file.xml");
如果我现在从我的项目的根运行 node ./tests/test.js
,它说 ../file.xml
不存在。如果我从 test 目录中运行相同的命令,那么它就可以工作。
看起来 fs.readFileSync
是相对于脚本调用所在的目录而言的,而不是脚本实际所在的目录。如果我在 test.js
中编写 fs.readFileSync("./file.xml")
,它将看起来更加混乱,并且与 require
语句中的相对路径不一致,因为 require
语句是文件相对路径。
为什么会这样? 我怎样才能避免重写我的 fs.readFileSync
的路径?