Skip to content

Commit ccdbeb4

Browse files
fix(install): duplicate dependencies in package.json (denoland#26128)
Fixes denoland#26120
1 parent 66929de commit ccdbeb4

File tree

9 files changed

+58
-0
lines changed

9 files changed

+58
-0
lines changed

cli/tools/registry/pm.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,10 @@ impl NpmConfig {
130130
fn add(&mut self, selected: SelectedPackage, dev: bool) {
131131
let (name, version) = package_json_dependency_entry(selected);
132132
if dev {
133+
self.dependencies.swap_remove(&name);
133134
self.dev_dependencies.insert(name, version);
134135
} else {
136+
self.dev_dependencies.swap_remove(&name);
135137
self.dependencies.insert(name, version);
136138
}
137139
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"tempDir": true,
3+
"steps": [
4+
{
5+
"args": "install npm:@denotest/esm-basic",
6+
"output": "install.out"
7+
},
8+
{
9+
"args": [
10+
"eval",
11+
"console.log(Deno.readTextFileSync('package.json').trim())"
12+
],
13+
"output": "package.json.out"
14+
}
15+
]
16+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Add npm:@denotest/[email protected]
2+
Download http://localhost:4260/@denotest/esm-basic
3+
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
4+
Initialize @denotest/[email protected]
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"devDependencies": { "@denotest/esm-basic": "^1.0.0" }
3+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"@denotest/esm-basic": "^1.0.0"
4+
}
5+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"tempDir": true,
3+
"steps": [
4+
{
5+
"args": "install --dev npm:@denotest/esm-basic",
6+
"output": "install.out"
7+
},
8+
{
9+
"args": [
10+
"eval",
11+
"console.log(Deno.readTextFileSync('package.json').trim())"
12+
],
13+
"output": "package.json.out"
14+
}
15+
]
16+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Add npm:@denotest/[email protected]
2+
Download http://localhost:4260/@denotest/esm-basic
3+
Download http://localhost:4260/@denotest/esm-basic/1.0.0.tgz
4+
Initialize @denotest/[email protected]
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"dependencies": { "@denotest/esm-basic": "^1.0.0" }
3+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"devDependencies": {
3+
"@denotest/esm-basic": "^1.0.0"
4+
}
5+
}

0 commit comments

Comments
 (0)