是什么给我带来了这个错误:
我不确定是否有一个真正的原因导致此问题,但就我而言,当我尝试从 Deno std lib 导入“v4”UUID 包时收到此错误,并且我使用可传递解决的依赖项来执行此操作(分两步或更多步)。就我而言,我决定让我的项目重新导出所有依赖项deps.ts
我的项目根目录下的文件:
[...]
// provide UUID from std lib
export {
v4
} from "https://deno.land/[email protected] /cdn-cgi/l/email-protection/uuid/mod.ts";
[...]
...然后,在发送给客户端的脚本中,我通过相对路径导入该模块并尝试使用它:
// this fails to compile with OP's error
import { v4 } from "../deps.ts";
[...]
const myNewUUID = v4.generate();
我的解决方法:
让使用模块导入外部模块而无需间接引用(通过 URL):
// this seems to compile and work OK
import { v4 } from "https://deno.land/[email protected] /cdn-cgi/l/email-protection/uuid/mod.ts";
[...]
const myNewUUID = v4.generate();
我没有在其他标准模块中遇到过这个问题,奇怪的是,即使来自deps.ts
重新加载deno cache --reload deps.ts
- 他们仍然无法解决上述错误。所以我不确定这个问题是否与 v4 UUID 包无关,或者是否可能发生在其他模块上。
如果有人有任何其他信息why这个导入策略引发了如此复杂的错误,我很想听听。 (我的猜测是 Deno.bundle 实现中的一个错误?)目前,这个解决方法似乎足够合理。
OP 的题外话:您已在 tsconfig.json 中包含了库“dom”和“deno.ns”,因此按照文档 https://deno.land/manual/runtime/compiler_apis您还应该提供目标 JS 级别,例如“es2018”(请参阅:“不要忘记包含 JavaScript 库”)