1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

fix(task): correct name for scoped npm package binaries (#25390)

This is for when not using a node_modules directory or when using auto
install for a node_modules dir.
This commit is contained in:
David Sherret 2024-09-03 15:56:39 +02:00 committed by GitHub
parent 7c59402325
commit b8ed6f8221
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 93 additions and 21 deletions

View file

@ -1,13 +1,13 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
use crate::args::CliOptions;
use crate::args::Flags;
use crate::args::TaskFlags;
use crate::colors;
use crate::factory::CliFactory;
use crate::npm::CliNpmResolver;
use crate::task_runner;
use crate::util::fs::canonicalize_path;
use std::borrow::Cow;
use std::collections::HashMap;
use std::collections::HashSet;
use std::path::Path;
use std::path::PathBuf;
use std::rc::Rc;
use std::sync::Arc;
use deno_config::deno_json::Task;
use deno_config::workspace::TaskOrScript;
use deno_config::workspace::WorkspaceDirectory;
@ -18,13 +18,15 @@ use deno_core::anyhow::Context;
use deno_core::error::AnyError;
use deno_core::normalize_path;
use deno_task_shell::ShellCommand;
use std::borrow::Cow;
use std::collections::HashMap;
use std::collections::HashSet;
use std::path::Path;
use std::path::PathBuf;
use std::rc::Rc;
use std::sync::Arc;
use crate::args::CliOptions;
use crate::args::Flags;
use crate::args::TaskFlags;
use crate::colors;
use crate::factory::CliFactory;
use crate::npm::CliNpmResolver;
use crate::task_runner;
use crate::util::fs::canonicalize_path;
pub async fn execute_script(
flags: Arc<Flags>,
@ -106,12 +108,9 @@ See https://docs.deno.com/go/config"#
.await
}
TaskOrScript::Script(scripts, _script) => {
// ensure the npm packages are installed if using a node_modules
// directory and managed resolver
if cli_options.has_node_modules_dir() {
if let Some(npm_resolver) = npm_resolver.as_managed() {
npm_resolver.ensure_top_level_package_json_install().await?;
}
// ensure the npm packages are installed if using a managed resolver
if let Some(npm_resolver) = npm_resolver.as_managed() {
npm_resolver.ensure_top_level_package_json_install().await?;
}
let cwd = match task_flags.cwd {

View file

@ -367,6 +367,7 @@ impl<TEnv: NodeResolverEnv> NodeResolver<TEnv> {
pkg_json_path,
});
};
let name = name.split("/").last().unwrap();
vec![name.to_string()]
}
Some(Value::Object(o)) => {

View file

@ -0,0 +1,5 @@
{
"tempDir": true,
"args": "task bin extra",
"output": "bin_auto.out"
}

View file

@ -0,0 +1,14 @@
Download http://localhost:4260/@denotest/bin
[UNORDERED_START]
Download http://localhost:4260/@denotest/bin/0.5.0.tgz
Initialize @denotest/bin@0.5.0
Download http://localhost:4260/@denotest/bin/1.0.0.tgz
Initialize @denotest/bin@1.0.0
[UNORDERED_END]
Task bin bin hi && cli-esm testing this out && npx cli-cjs test "extra"
hi
testing
this
out
test
extra

View file

@ -0,0 +1,12 @@
Download http://localhost:4260/@denotest/bin
[UNORDERED_START]
Download http://localhost:4260/@denotest/bin/0.5.0.tgz
Download http://localhost:4260/@denotest/bin/1.0.0.tgz
[UNORDERED_END]
Task bin bin hi && cli-esm testing this out && npx cli-cjs test "extra"
hi
testing
this
out
test
extra

View file

@ -0,0 +1,3 @@
{
"nodeModulesDir": "auto"
}

View file

@ -0,0 +1,9 @@
{
"scripts": {
"bin": "bin hi && cli-esm testing this out && npx cli-cjs test"
},
"dependencies": {
"@denotest/bin": "0.5",
"other": "npm:@denotest/bin@1.0"
}
}

View file

@ -0,0 +1,5 @@
{
"tempDir": true,
"args": "task bin extra",
"output": "bin_none.out"
}

View file

@ -0,0 +1,12 @@
Download http://localhost:4260/@denotest/bin
[UNORDERED_START]
Download http://localhost:4260/@denotest/bin/0.5.0.tgz
Download http://localhost:4260/@denotest/bin/1.0.0.tgz
[UNORDERED_END]
Task bin bin hi && cli-esm testing this out && npx cli-cjs test "extra"
hi
testing
this
out
test
extra

View file

@ -0,0 +1,3 @@
{
"nodeModulesDir": "none"
}

View file

@ -0,0 +1,9 @@
{
"scripts": {
"bin": "bin hi && cli-esm testing this out && npx cli-cjs test"
},
"dependencies": {
"@denotest/bin": "0.5",
"other": "npm:@denotest/bin@1.0"
}
}