Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where can I see deno downloaded packages?

I am new to deno and currently exploring for a minimum viable project in deno. I want to like npm which downloads the npm packages inside the folder node_modules, similarly I want to see the deno packages in a directory. In my current project I do not see any downloaded packages. Please suggest me where to look for deno packages. If I write dep.ts file to mention all the deno packages, can I use the same deno packages for some other projects. My question is bit similar to what Maven or Gradle in java handles. It means I want to know whether deno maintains a single folder in OS so that all the packages are downloaded and used in many projects. I want to check the directory containing the deno packages in windows 10.

like image 588
Sambit Avatar asked May 14 '20 14:05

Sambit


Video Answer


2 Answers

The imports are cached in $DENO_DIR

From the docs:

Deno caches remote imports in a special directory specified by the $DENO_DIR environmental variable. It defaults to the system's cache directory if $DENO_DIR is not specified. The next time you run the program, no downloads will be made. If the program hasn't changed, it won't be recompiled either. The default directory is:

  • On Linux/Redox: $XDG_CACHE_HOME/deno or $HOME/.cache/deno
  • On Windows: %LOCALAPPDATA%/deno (%LOCALAPPDATA% = FOLDERID_LocalAppData)
  • On macOS: $HOME/Library/Caches/deno If something fails, it falls back to $HOME/.deno

Relying on external servers is convenient for development but brittle in production. Production software should always bundle its dependencies. In Deno this is done by checking the $DENO_DIR into your source control system, and specifying that path as the $DENO_DIR environmental variable at runtime.


what is the deno command to install all the dependencies mentioned in dep.ts file

To install just import dep.ts in one of your files and run:

deno run index.js
like image 131
Marcos Casagrande Avatar answered Sep 22 '22 16:09

Marcos Casagrande


You can use deno info to get the cache directory of remote modules.

Sample output (Windows 10):
> 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"
To get info about a single (remote) module:
deno info --unstable https://deno.land/std/fs/mod.ts # --unstable needed as of 1.0.3
Sample output:
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: Local path of source file (TS or JS)
compiled: Local path of compiled source code (.js, for TS only)
map: Local path of source map (TS only)
deps: Dependency tree of source file

like image 24
ford04 Avatar answered Sep 20 '22 16:09

ford04