Deno 导入地图和锁定文件

Deno import maps and lock file

据我所知,Deno 锁定文件只能在使用包含所有导入的 TypeScript(或 JavaScript)文件时创建——通常来自 deps.ts 文件。

我希望能够使用(还不稳定)导入地图并基于它生成锁定文件。

是否可以从 import_map.json 文件生成锁定文件?如果不可能,是否有任何其他方法可以使用 deps.ts 文件,例如,能够映射依赖项以便导入它们而无需在任何地方使用(臭名昭著的)./..

此外,似乎无法在 tsconfig.json 文件上使用 paths 功能,因为我不知道如何引用其中的任何模块。

目前还不能直接根据导入图生成锁文件。但是你可以将你的程序的入口文件连同导入映射一起传递来生成一个锁文件。

这是一个例子。

log.ts:

import { green } from "colors";
console.log(`Status: ${green("OK")}`);

deps.json(导入地图):

{
  "imports": {
    "colors": "https://deno.land/std@0.88.0/fmt/colors.ts"
  }
}

现在运行下面的命令生成锁文件。

deno cache --import-map=deps.json --unstable --lock=lock.json --lock-write log.ts

lock.json 的内容可能如下所示。

{
  "https://deno.land/std@0.88.0/fmt/colors.ts": "db22b314a2ae9430ae7460ce005e0a7130e23ae1c999157e3bb77cf55800f7e4"
}

Another solution 工作非常紧密或更好,因为它实际上扫描项目使用的所有依赖项是 运行:deno test --no-run --import-map import-map.json --lock lock.json --lock-write.