【发布时间】:2021-07-22 16:05:41
【问题描述】:
我最初的动机是在 Ubuntu 上从 Crontab 运行 Deno 脚本。
首先我不知道路径是相对于工作目录的,而不是相对于执行模块的。
我的脚本正在读取文件并将其写入磁盘,所以出现了类似的错误
error: Uncaught NotFound: No such file or directory (os error 2)
有人指出这个问题可以用import.meta.url解决。
我修改了从import.meta.url 解析它的路径,这个解决方案在读/写操作上运行良好。
但是我遇到了.env 文件的另一个问题。
令我惊讶的是,即使是 dotenv 模块也使用相对于工作目录的路径。
dotenv模块可以选择用config({path:___})指定路径,但是我觉得覆盖默认位置太多了。
最终,在 crontab 中运行脚本之前将工作目录更改为脚本的根目录是一个更简单的解决方案。
* * * * * cd ____; deno run ___
但我仍然怀疑这是否是最有效的方法。
在这种情况下更改目录有什么更好的方法吗?
运行 deno 时最好有一个模式,这将使路径相对于执行模块,不包括使用 URL 导入的模块。
【问题讨论】:
标签: deno