如何在 Deno 中保留包的版本

How to keep the version of packages in Deno

我不太明白如何在 Deno 项目中保留包的版本。

我看到它直接通过 url 加载包,而没有使用我在 Nodejs 项目中的 package.json

这很酷,但我如何保留我在项目中使用的某些库的版本?我担心的是,如果图书馆更新了它的某些功能,那么我的服务器就会崩溃。

其实我想我一定漏掉了一些很常见的东西。

谁能给我一个关于这个问题的提示?

使用 versioned imports from deno.land 确保始终获得您开发软件所用的版本。 Deno.land 缓存版本并允许按版本号导入。

而不是写作:

import { validateJwt } from "https://deno.land/x/djwt/validate.ts";

这将始终导入包的当前版本, 您可以在包名称后面添加版本号 @<version> 以明确导入该版本(此处为 1.7 版):

import { validateJwt } from "https://deno.land/x/djwt@v1.7/validate.ts";

要检查更新,有一个第三方模块 deno-check-updates 适用于 import maps。 但请注意,导入地图仍被标记为不稳定的功能,并且 deno-check-updates 也仅在 v0.3 上可用,并且由于 deno 方面的更改目前无法使用。

刚刚尝试 deno run -A --unstable https://deno.land/x/deno_check_updates/main.ts -f import_map.json 并遇到错误。

我会尽快检查并更新此答案。

对我来说,我只是将导入放在 deps.tsdeps/modname.ts

例如:

deps/abc.ts

export { Application } from "https://deno.land/x/abc@v1.2.1/mod.ts";

main.ts

import * as abc from "./deps/abc.ts";