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.