Skip to content

Commit 59191ed

Browse files
refactor: remove @npmcli/package-json usage (#14558)
1 parent 25d4741 commit 59191ed

File tree

4 files changed

+33
-173
lines changed

4 files changed

+33
-173
lines changed

packages/react-router-dev/cli/commands.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { existsSync } from "node:fs";
22
import { readFile, writeFile } from "node:fs/promises";
33
import * as path from "node:path";
4-
import PackageJson from "@npmcli/package-json";
54
import exitHook from "exit-hook";
65
import colors from "picocolors";
6+
import { readPackageJSON } from "pkg-types";
77
// Workaround for "ERR_REQUIRE_CYCLE_MODULE" in Node 22.10.0+
88
import "react-router";
99

@@ -138,8 +138,8 @@ export async function generateEntry(
138138
return;
139139
}
140140

141-
let pkgJson = await PackageJson.load(rootDirectory);
142-
let deps = pkgJson.content.dependencies ?? {};
141+
let pkgJson = await readPackageJSON(rootDirectory);
142+
let deps = pkgJson.dependencies ?? {};
143143

144144
if (!deps["@react-router/node"]) {
145145
console.error(colors.red(`No default server entry detected.`));

packages/react-router-dev/config/config.ts

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import fs from "node:fs";
22
import { execSync } from "node:child_process";
3-
import PackageJson from "@npmcli/package-json";
43
import * as ViteNode from "../vite/vite-node";
54
import type * as Vite from "vite";
65
import Path from "pathe";
@@ -9,6 +8,7 @@ import chokidar, {
98
type EmitArgs as ChokidarEmitArgs,
109
} from "chokidar";
1110
import colors from "picocolors";
11+
import { readPackageJSON, sortPackage, updatePackage } from "pkg-types";
1212
import pick from "lodash/pick";
1313
import omit from "lodash/omit";
1414
import cloneDeep from "lodash/cloneDeep";
@@ -921,8 +921,8 @@ export async function resolveEntryFiles({
921921
}
922922

923923
let packageJsonDirectory = Path.dirname(packageJsonPath);
924-
let pkgJson = await PackageJson.load(packageJsonDirectory);
925-
let deps = pkgJson.content.dependencies ?? {};
924+
let pkgJson = await readPackageJSON(packageJsonDirectory);
925+
let deps = pkgJson.dependencies ?? {};
926926

927927
if (!deps["@react-router/node"]) {
928928
throw new Error(
@@ -935,15 +935,12 @@ export async function resolveEntryFiles({
935935
"adding `isbot@5` to your package.json, you should commit this change",
936936
);
937937

938-
pkgJson.update({
939-
dependencies: {
940-
...pkgJson.content.dependencies,
941-
isbot: "^5",
942-
},
938+
await updatePackage(packageJsonPath, (pkg) => {
939+
pkg.dependencies ??= {};
940+
pkg.dependencies.isbot = "^5";
941+
sortPackage(pkg);
943942
});
944943

945-
await pkgJson.save();
946-
947944
let packageManager = detectPackageManager() ?? "npm";
948945

949946
execSync(`${packageManager} install`, {

packages/react-router-dev/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@
7171
"@babel/preset-typescript": "^7.27.1",
7272
"@babel/traverse": "^7.27.7",
7373
"@babel/types": "^7.27.7",
74-
"@npmcli/package-json": "^4.0.1",
7574
"@react-router/node": "workspace:*",
7675
"@remix-run/node-fetch-server": "^0.9.0",
7776
"arg": "^5.0.1",
@@ -86,6 +85,7 @@
8685
"p-map": "^7.0.3",
8786
"pathe": "^1.1.2",
8887
"picocolors": "^1.1.1",
88+
"pkg-types": "^2.3.0",
8989
"prettier": "^3.6.2",
9090
"react-refresh": "^0.14.0",
9191
"semver": "^7.3.7",

0 commit comments

Comments
 (0)