我有一个可执行的节点/JavaScript脚本,它有一个debug布尔值,如果设置为true,将会写入几个文件。这个可执行文件也是一个节点模块。根据运行脚本的用户的工作目录,似乎函数找不到要写入文件的目录。
该模块的结构如下:
output/
lib/
helpers.js
index.js
我的最初想法是让路径成为。
helper.write = function(data,filename){
if(typeof data !== "string") data = JSON.stringify(data);
fs.writeFileSync("./output/"+filename, data);
};
然而,在从node_module文件夹内运行脚本时,这是有效的。
fs.writeFileSync("process.cwd()+"/node_modules/the_module/output/"+filename, data);
像这样
node ./my_app/node_modules/the_module/index.js
如果模块被用于使用该库的另一个可执行文件中,情况会变得更加混乱。
node ./my_app/run.js
有没有一种方法可以独立于所有这些变量保存文件?