UNPKG

viject

Version:

A tool for migrating your React app from react-scripts (Create React App) to Vite

30 lines (29 loc) 1.54 kB
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); };