我正在构建一个 hubot 脚本,我想在其中加载一个 yml 文件。我正在使用 yamljs npm 包来读取 YAML 文件。
问题是它总是说“没有这样的文件或目录”错误。如果我输入绝对路径,它就可以工作。
我错过了什么?我正在加载这样的文件:
feeds = YAML.load('../feeds.yml');
这是我的目录结构:
我正在构建一个 hubot 脚本,我想在其中加载一个 yml 文件。我正在使用 yamljs npm 包来读取 YAML 文件。
问题是它总是说“没有这样的文件或目录”错误。如果我输入绝对路径,它就可以工作。
我错过了什么?我正在加载这样的文件:
feeds = YAML.load('../feeds.yml');
这是我的目录结构:
你从哪里执行脚本?在节点中,路径文件fs
是相对于process.cwd()
.
可以使用文件名的相对路径,但请记住,此路径将相对于 process.cwd()。
来源:http : //nodejs.org/api/fs.html,https: //stackoverflow.com/a/16730379/1007263
因此,如果您的脚本与 位于同一目录中feeds.yml
,您可能应该:
feeds = YAML.load('./feeds.yml');
否则,YAML 中可能存在错误。在这种情况下,您可以简单地使用path
直接传递绝对路径。
path.resolve('../feeds.yml')
来源:http ://nodejs.org/api/path.html#path_path_resolve_from_to