Skip to content

Aslemammad/venode

Repository files navigation

Venode

The missing child of Node.js and Deno.


Venode is a node runner that supports deno features like vendoring and http imports!

Features

  • Javascript/Typescript http imports
  • Vendor dependencies
  • Out-of-box TypeScript / JSX support
  • Built on top of Vite
  • Node >= 14

Http imports

You can easily import javascript/typescript code from the web!

// index.ts
import { assert } from "https://raw.githubusercontent.com/denoland/deno_std/main/_util/assert.ts";

console.log("here is deno assert function in node:", assert);

In your terminal:

> venode index.ts
ℹ Download https://raw.githubusercontent.com/denoland/deno_std/main/_util/assert.ts
here is deno assert function in node: [Function: assert]

Vendor

Vendoring packages is possible, so your app would be able to rely on the same code all the time!

> venode vendor index.ts
ℹ Download https://raw.githubusercontent.com/denoland/deno_std/main/_util/assert.ts
✔ To use vendored modules, specify the --import-map flag: venode --import-map=vendor/import_map.json

The vendor directory should be checked into the version control, so you (your team) use the same dependencies all the time!

Now you can specify the vendor/import_map.json as the import map in venode:

> venode index.ts --import-map=vendor/import_map.json
✔ Reading modules from vendor/import_map.json
here is deno assert function in node: [Function: assert]

Read more about vendoring in deno's release notes.

Contributing

Feel free to create issues for the bugs or features you want.

Credits

vite-node

deno

mlly

consola

undici

About

🐢🦕 The missing child of Node.js and Deno.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published