From 4e23a5b1fc2ba0e26f1832a2c374a1f3aef9e7ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Wed, 8 May 2024 20:34:46 +0100 Subject: FUTURE: `deno install` changes (#23498) This PR implements the changes we plan to make to `deno install` in deno 2.0. - `deno install` without arguments caches dependencies from `package.json` / `deno.json` and sets up the `node_modules` folder - `deno install ` adds the package to the config file (either `package.json` or `deno.json`), i.e. it aliases `deno add` - `deno add` can also add deps to `package.json` (this is gated behind `DENO_FUTURE` due to uncertainty around handling projects with both `deno.json` and `package.json`) - `deno install -g ` installs a package as a globally available binary (the same as `deno install ` in 1.0) --------- Co-authored-by: Nathan Whitaker --- .../install/future_install_node_modules/__test__.jsonc | 17 +++++++++++++++++ .../install/future_install_node_modules/install.out | 4 ++++ tests/specs/install/future_install_node_modules/main.js | 3 +++ .../install/future_install_node_modules/package.json | 5 +++++ 4 files changed, 29 insertions(+) create mode 100644 tests/specs/install/future_install_node_modules/__test__.jsonc create mode 100644 tests/specs/install/future_install_node_modules/install.out create mode 100644 tests/specs/install/future_install_node_modules/main.js create mode 100644 tests/specs/install/future_install_node_modules/package.json (limited to 'tests/specs/install/future_install_node_modules') diff --git a/tests/specs/install/future_install_node_modules/__test__.jsonc b/tests/specs/install/future_install_node_modules/__test__.jsonc new file mode 100644 index 000000000..eb780d962 --- /dev/null +++ b/tests/specs/install/future_install_node_modules/__test__.jsonc @@ -0,0 +1,17 @@ +{ + "tempDir": true, + "envs": { + "DENO_FUTURE": "1" + }, + "steps": [ + { + "args": "install", + "output": "install.out" + }, + { + // ensure deps are actually cached + "args": "run --cached-only main.js", + "output": "" + } + ] +} diff --git a/tests/specs/install/future_install_node_modules/install.out b/tests/specs/install/future_install_node_modules/install.out new file mode 100644 index 000000000..22574688a --- /dev/null +++ b/tests/specs/install/future_install_node_modules/install.out @@ -0,0 +1,4 @@ +⚠️ `deno install` behavior will change in Deno 2. To preserve the current behavior use the `-g` or `--global` flag. +Download http://localhost:4260/@denotest/esm-basic +Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz +Initialize @denotest/esm-basic@1.0.0 diff --git a/tests/specs/install/future_install_node_modules/main.js b/tests/specs/install/future_install_node_modules/main.js new file mode 100644 index 000000000..2ba55540b --- /dev/null +++ b/tests/specs/install/future_install_node_modules/main.js @@ -0,0 +1,3 @@ +import { setValue } from "@denotest/esm-basic"; + +setValue(5); diff --git a/tests/specs/install/future_install_node_modules/package.json b/tests/specs/install/future_install_node_modules/package.json new file mode 100644 index 000000000..54ca824d6 --- /dev/null +++ b/tests/specs/install/future_install_node_modules/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "@denotest/esm-basic": "*" + } +} -- cgit v1.2.3