Find a file
David Sherret be97170a19
feat(unstable): ability to npm install then deno run main.ts (#20967)
This PR adds a new unstable "bring your own node_modules" (BYONM)
functionality currently behind a `--unstable-byonm` flag (`"unstable":
["byonm"]` in a deno.json).

This enables users to run a separate install command (ex. `npm install`,
`pnpm install`) then run `deno run main.ts` and Deno will respect the
layout of the node_modules directory as setup by the separate install
command. It also works with npm/yarn/pnpm workspaces.

For this PR, the behaviour is opted into by specifying
`--unstable-byonm`/`"unstable": ["byonm"]`, but in the future we may
make this the default behaviour as outlined in
https://github.com/denoland/deno/issues/18967#issuecomment-1761248941

This is an extremely rough initial implementation. Errors are
terrible in this and the LSP requires frequent restarts. Improvements
will be done in follow up PRs.
2023-10-25 14:39:00 -04:00
.cargo chore: Add a local-build.toml to make downstream packaging from sourc… (#20236) 2023-08-24 08:46:57 -06:00
.devcontainer fix(devcontainer): Add build deps and update extension in devcontainer (#20467) 2023-09-12 15:33:07 +00:00
.github ci: remove "Test examples debug" (#20966) 2023-10-24 22:12:25 +00:00
bench_util chore: forward v1.37.2 release commit to main (#20897) 2023-10-13 03:12:06 +00:00
cli feat(unstable): ability to npm install then deno run main.ts (#20967) 2023-10-25 14:39:00 -04:00
ext chore: update deno_core and port all remaining ops to op2 (#20954) 2023-10-25 13:43:38 +02:00
runtime chore: update deno_core and port all remaining ops to op2 (#20954) 2023-10-25 13:43:38 +02:00
test_ffi chore(ext/ffi): migrate from op -> op2 for ffi (#20509) 2023-10-05 15:35:21 +02:00
test_napi chore(cli): use NPM_CONFIG_REGISTRY for all tests (#20320) 2023-08-29 13:02:54 -06:00
test_util feat(unstable): ability to npm install then deno run main.ts (#20967) 2023-10-25 14:39:00 -04:00
tools feat(unstable): ability to npm install then deno run main.ts (#20967) 2023-10-25 14:39:00 -04:00
.dlint.json chore: update dlint to v0.37.0 for GitHub Actions (#17295) 2023-01-16 17:17:18 +01:00
.dprint.json refactor: upgrade to deno_ast 0.31 and deno_graph 0.59 (#20965) 2023-10-24 21:43:19 +00:00
.editorconfig editorconfig: Don't insert final newline in .out files (#1686) 2019-02-07 11:31:49 -05:00
.gitattributes fix(test): support typechecking docs with CRLF line endings (#12748) 2021-11-15 09:58:04 -05:00
.gitignore feat: Add "deno jupyter" subcommand (#20337) 2023-09-16 02:42:09 +02:00
.gitmodules chore: remove third_party submodule (#20201) 2023-08-19 09:56:12 +05:30
.rustfmt.toml chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
Cargo.lock chore: update deno_core and port all remaining ops to op2 (#20954) 2023-10-25 13:43:38 +02:00
Cargo.toml chore: update deno_core and port all remaining ops to op2 (#20954) 2023-10-25 13:43:38 +02:00
LICENSE.md chore: update copyright year to 2023 (#17247) 2023-01-02 21:00:42 +00:00
README.md docs: update readme hello world example (#20874) 2023-10-11 14:43:41 +00:00
Releases.md chore: forward v1.37.2 release commit to main (#20897) 2023-10-13 03:12:06 +00:00
rust-toolchain.toml chore: update to Rust 1.73 (#20781) 2023-10-05 14:49:09 -04:00

Deno

Twitter badge Discord badge YouTube badge

the deno mascot dinosaur standing in the rain

Deno is a simple, modern and secure runtime for JavaScript and TypeScript that uses V8 and is built in Rust.

Features

Install

Shell (Mac, Linux):

curl -fsSL https://deno.land/install.sh | sh

PowerShell (Windows):

irm https://deno.land/install.ps1 | iex

Homebrew (Mac):

brew install deno

Chocolatey (Windows):

choco install deno

Scoop (Windows):

scoop install deno

Build and install from source using Cargo:

# Install the Protobuf compiler
apt install -y protobuf-compiler # Linux
brew install protobuf # macOS

# Build and install Deno
cargo install deno --locked

See deno_install and releases for other options.

Getting Started

Try running a simple program:

deno run https://examples.deno.land/hello-world.ts

Or setup a simple HTTP server:

Deno.serve((_req) => new Response("Hello, World!"));

More Examples

Additional Resources

Contributing

We appreciate your help!

To contribute, please read our contributing instructions.