我有一个具有调试布尔值的可执行节点/javascript 脚本,如果设置为 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
有没有办法独立于所有这些变量来保存文件?