无法在 Deno 中加载依赖项的 txt 文件

Can't load txt file of dependecy in Deno

我正在制作简单的包,用于编辑和提供数据,保存在 txt 文件中。
由于我无法导入非脚本文件(JSON、txt 等),我使用的是 Deno.open().

sample.txt (In package)

Hello, World!

mod.ts (In package)

const decoder = new TextDecoder("utf-8")

const f = await Deno.open("sample.txt")
export default decoder.decode(await Deno.readAll(f)) // Hello, World!
f.close()

包单独运行正常,但在其他目录下使用时出错
test.ts(本地文件,加载不同目录下的包)

import file from "https://raw.githubusercontent.com/gnlow/deno-file-test/master/mod.ts"

console.log(file)

错误:

$ deno -V
deno 1.2.0
$ deno run --allow-read test.ts
Download https://raw.githubusercontent.com/gnlow/deno-file-test/master/mod.ts
Compile file:///var/task/__$deno$eval.ts
error: Uncaught NotFound: No such file or directory (os error 2)
    at unwrapResponse ($deno$/ops/dispatch_json.ts:43:11)
    at Object.sendAsync ($deno$/ops/dispatch_json.ts:98:10)
    at async Object.open ($deno$/files.ts:37:15)
    at async https://raw.githubusercontent.com/gnlow/deno-file-test/master/mod.ts:3:11

似乎 deno 只下载脚本文件。 (generated file image)
我也只想让 deno 加载非脚本数据文件。
我该如何解决这个问题?

您的代码运行良好,检查错误很重要:

error: Uncaught NotFound: No such file or directory (os error 2)

告诉你 "sample.txt" 在当前目录中不存在。确保从文件所在的目录执行 Deno。


除了阅读文本文件之外,您还可以使用 Deno.readTextFile

export default await Deno.readTextFile("./sample.txt") // Hello, World!

您的代码期望 sample.txt 在您的文件系统上,但您试图从 github 存储库读取 sample.txt,唯一的解决方案是执行 HTTP 请求获取该文件,而不是使用 Deno 文件系统 API。

但在那种情况下,您将无法写入。对于您的用例,您应该使用本地文件,因此如果您要写入该文件,则需要创建该文件。

I'm making simple package that edits and provides data, saved in txt file.