Skip to content
Closed
Prev Previous commit
Next Next commit
Avoid magic values
  • Loading branch information
Timer committed Nov 19, 2017
commit 9c57ba76fc04685df785f4e157ebe81555ce7358
14 changes: 10 additions & 4 deletions packages/react-scripts/scripts/eject.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,26 @@ function getGitStatus() {
}
}

function adjustPackages(packages, append, dev = false) {
const ADD_PACKAGE = true,
REMOVE_PACKAGE = false;
const PROD_PACKAGE = true,
DEV_PACKAGE = false;
function adjustPackages(cwd, packages, append, dev) {
if (!Array.isArray(packages)) {
packages = [packages];
}
if (fs.existsSync(paths.yarnLockFile)) {
spawnSync('yarnpkg', [append ? 'add' : 'remove', ...packages], {
stdio: 'inherit',
cwd,
});
} else {
spawnSync(
'npm',
[append ? 'install' : 'uninstall', dev ? '-D' : '-S', ...packages],
{
stdio: 'inherit',
cwd,
}
);
}
Expand Down Expand Up @@ -171,13 +177,13 @@ inquirer
// We used to put react-scripts in devDependencies
if (appPackage.devDependencies[ownPackageName]) {
console.log(` Removing ${cyan(ownPackageName)} from devDependencies`);
adjustPackages(ownPackageName, false, true);
adjustPackages(appPath, ownPackageName, REMOVE_PACKAGE, DEV_PACKAGE);
}
}
appPackage.dependencies = appPackage.dependencies || {};
if (appPackage.dependencies[ownPackageName]) {
console.log(` Removing ${cyan(ownPackageName)} from dependencies`);
adjustPackages(ownPackageName, false);
adjustPackages(appPath, ownPackageName, REMOVE_PACKAGE, PROD_PACKAGE);
}
let appendList = [];
Object.keys(ownPackage.dependencies).forEach(key => {
Expand All @@ -188,7 +194,7 @@ inquirer
console.log(` Adding ${cyan(key)} to dependencies`);
appendList.push(`${key}@${ownPackage.dependencies[key]}`);
});
adjustPackages(appendList, true);
adjustPackages(appPath, appendList, ADD_PACKAGE, PROD_PACKAGE);
console.log();

appPackage = require(path.join(appPath, 'package.json'));
Expand Down