我可以帮您翻译成中文:我在哪里可以看到已下载的Deno包?

25

我刚接触deno,正在探索一个最小可行项目。我想像npm一样,在node_modules文件夹内下载npm包,同样地,我希望在一个目录中查看deno包。但是在我的当前项目中,我没有看到任何已下载的包。请建议我在哪里寻找deno包。如果我编写dep.ts文件来列出所有deno包,那么我能否在其他项目中使用相同的deno包?我的问题有点类似于Java中MavenGradle的处理方式。这意味着我想知道deno是否维护一个单独的文件夹在操作系统中,以便在许多项目中下载和使用所有包。我想在Windows 10中检查包含deno包的目录。

2个回答

23

导入的模块被缓存到$DENO_DIR中。

来自文档

Deno将远程导入缓存到由$DENO_DIR环境变量指定的特殊目录中。如果未指定$DENO_DIR,则默认为系统缓存目录。 下次运行程序时,不会进行下载。如果程序没有更改,则也不会重新编译。默认目录是:

  • 在Linux/Redox上:$XDG_CACHE_HOME/deno$HOME/.cache/deno
  • 在Windows上:%LOCALAPPDATA%/deno%LOCALAPPDATA% = FOLDERID_LocalAppData
  • 在macOS上:$HOME/Library/Caches/deno 如果出现问题,它会回退到$HOME/.deno

依赖于外部服务器对开发很方便,但在生产中很脆弱。生产软件应始终捆绑其依赖项。在Deno中,通过将$DENO_DIR检入您的源代码控制系统,并在运行时指定该路径作为$DENO_DIR环境变量来实现这一点。

您可以通过运行deno info查看信息


在dep.ts文件中提到的所有依赖项的deno命令是什么?

只需在您的文件中导入dep.ts,并运行以下命令:

deno run index.js

deno命令如何安装dep.ts文件中提到的所有依赖项? - Sambit
1
我一直在检查,真的是非常好和出色的答案。再次+1并且我接受了。我可能会问更多问题,请耐心等待。我对Deno产生了更多兴趣,它似乎比NodeJs更有前途。 - Sambit
谢谢!没问题,如果我知道答案,我很乐意回答任何问题 :)。在我看来,我不知道它是否比Node.js更有前途,它们两个都很棒。 - Marcos Casagrande
我刚在 dep.ts 文件中提到了 import * as logger from "https://deno.land/std/log/mod.ts";。当我像这样在另一个类中尝试导入 'import {logger} from "./dep.ts";' 时,它并不起作用,出现了错误:error: TS2305 [ERROR]: Module '"https://deno.land/std/log/mod"' has no exported member 'logger'. - Sambit
1
你需要在 deps.ts 中进行 export,请参考以下示例:https://deno.land/manual/linking_to_external_code#it-seems-unwieldy-to-import-urls-everywhere - Marcos Casagrande
请不要介意,我问了这个问题。https://stackoverflow.com/questions/61800486/unable-to-import-dependency-in-deno-dep-ts-file-in-another-class - Sambit

10

你可以使用 deno info 命令获取远程模块的缓存目录。

> deno info
DENO_DIR location: "C:\\Users\\ford\\AppData\\Local\\deno"
Remote modules cache: "C:\\Users\\ford\\AppData\\Local\\deno\\deps"
TypeScript compiler cache: "C:\\Users\\ford\\AppData\\Local\\deno\\gen"

deno info --unstable https://deno.land/std/fs/mod.ts # --unstable needed as of 1.0.3

local: C:\Users\ford\AppData\Local\deno\deps\https\deno.land\434fe4a7...8f300799a073e0
type: TypeScript
compiled: C:\Users\ford\AppData\Local\deno\gen\https\deno.land\std\fs\mod.ts.js
map: C:\Users\ford\AppData\Local\deno\gen\https\deno.land\std\fs\mod.ts.js.map 
deps:
https://deno.land/std/fs/mod.ts
  ├─┬ https://deno.land/std/fs/empty_dir.ts
  ...

local:源文件的本地路径(TS或JS)
compiled:编译后的源代码的本地路径(仅适用于TS,.js格式)
map:源映射的本地路径(仅适用于TS)
deps:源文件的依赖树


它是在最新版本中引入的还是从一开始就有的? - Sambit
v1.0.2 版本中已添加了 deno info 的缓存位置输出,详见相关 PR - ford04

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接