Deno 导入地图和锁定文件

x80*_*486 2 deno

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

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

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

此外,看起来pathstsconfig.json文件上使用该功能是行不通的,因为我不知道如何引用其中的任何模块。

小智 5

您还不能直接基于导入映射生成锁定文件。但是您可以将程序的入口文件与导入映射一起传递以生成锁定文件。

这是一个例子。

log.ts

import { green } from "colors";
console.log(`Status: ${green("OK")}`);
Run Code Online (Sandbox Code Playgroud)

deps.json (导入图):

{
  "imports": {
    "colors": "https://deno.land/std@0.88.0/fmt/colors.ts"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在运行以下命令来生成一个锁定文件。

deno cache --import-map=deps.json --unstable --lock=lock.json --lock-write log.ts
Run Code Online (Sandbox Code Playgroud)

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

{
  "https://deno.land/std@0.88.0/fmt/colors.ts": "db22b314a2ae9430ae7460ce005e0a7130e23ae1c999157e3bb77cf55800f7e4"
}
Run Code Online (Sandbox Code Playgroud)