viject
Version:
A tool for migrating your React app from react-scripts (Create React App) to Vite
30 lines (29 loc) • 1.54 kB
JavaScript
import { readFileSync, writeFileSync } from "node:fs";
import { EOL } from "node:os";
import { appPackageJson, ownPackageJson } from "./paths.js";
export const overWritePackageJson = (options) => {
var _a, _b;
const ownPackage = JSON.parse(readFileSync(ownPackageJson, "utf-8"));
const appPackage = JSON.parse(readFileSync(appPackageJson, "utf-8"));
if (!appPackage.devDependencies) {
appPackage.devDependencies = {};
}
const viteDeps = [
"@vitejs/plugin-react",
"vite",
...(options.svg ? ["@svgr/core", "@svgr/plugin-jsx"] : []),
...(options.tsConfig ? ["@types/node"] : []),
...(options.tsConfig || options.jsConfig ? ["vite-tsconfig-paths"] : []),
];
for (const key of Object.keys(ownPackage.devDependencies)) {
if (viteDeps.includes(key)) {
appPackage.devDependencies[key] = ownPackage.devDependencies[key];
}
}
appPackage.scripts = Object.assign(Object.assign({}, appPackage.scripts), { dev: "vite", start: ((_a = appPackage.scripts.start) === null || _a === void 0 ? void 0 : _a.includes("react-scripts start"))
? appPackage.scripts.start.replace("react-scripts start", "vite")
: "vite", build: ((_b = appPackage.scripts.build) === null || _b === void 0 ? void 0 : _b.includes("react-scripts build"))
? appPackage.scripts.build.replace("react-scripts build", "vite build")
: "vite build" });
writeFileSync(appPackageJson, JSON.stringify(appPackage, null, 2) + EOL);
};