diff --git a/packages/babel-cli/bin/babel-doctor.js b/packages/babel-cli/bin/babel-doctor.js old mode 100755 new mode 100644 index e22664f438..d3d0a3ec96 --- a/packages/babel-cli/bin/babel-doctor.js +++ b/packages/babel-cli/bin/babel-doctor.js @@ -1,3 +1,3 @@ #!/usr/bin/env node -require("../lib/babel-doctor"); +throw new Error("babel-doctor has been removed."); diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index 6001e4d67b..881362650b 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -11,18 +11,14 @@ "babel-register": "^6.16.0", "babel-polyfill": "^6.16.0", "babel-runtime": "^6.9.0", - "bin-version-check": "^2.1.0", - "chalk": "1.1.1", "commander": "^2.8.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^1.0.0", "glob": "^5.0.5", "lodash": "^4.2.0", - "log-symbols": "^1.0.2", "output-file-sync": "^1.1.0", "path-exists": "^1.0.0", "path-is-absolute": "^1.0.0", - "request": "^2.65.0", "slash": "^1.0.0", "source-map": "^0.5.0", "v8flags": "^2.0.10" diff --git a/packages/babel-cli/src/babel-doctor/index.js b/packages/babel-cli/src/babel-doctor/index.js deleted file mode 100644 index 3bf118d240..0000000000 --- a/packages/babel-cli/src/babel-doctor/index.js +++ /dev/null @@ -1,96 +0,0 @@ -import chalk from "chalk"; -import path from "path"; -import fs from "fs"; -import * as rules from "./rules"; -import symbols from "log-symbols"; - -let didError = false; -let lastWasSep = false; - -function sep() { - if (lastWasSep) return; - lastWasSep = true; - - console.log(); -} - -function log(msg) { - lastWasSep = false; - console.log(msg); -} - -// - -log("\n" + chalk.underline.yellow("Babel Doctor")); -log("Running sanity checks on your system. This may take a few minutes...\n"); - -// - -let packages = []; - -let nodeModulesDirectories = [ - path.join(process.cwd(), "node_modules") -]; - -while (nodeModulesDirectories.length) { - let loc = nodeModulesDirectories.shift(); - if (!fs.existsSync(loc)) continue; - - let packagesNames: Array = fs.readdirSync(loc); - - for (let packageName of packagesNames) { - if (packageName[0] === ".") continue; - - let packageLoc = path.join(loc, packageName); - let packageJsonLoc = path.join(packageLoc, "package.json"); - if (!fs.existsSync(packageJsonLoc)) continue; - - packages.push({ - name: packageName, - loc: packageLoc, - version: require(packageJsonLoc).version - }); - - nodeModulesDirectories.push(path.join(packageLoc, "node_modules")); - } -} - -// - -async function run() { - let promises = []; - - for (let key in rules) { - if (key[0] === "_") continue; - - let fn = rules[key]; - promises.push(fn(packages)); - } - - let results = await Promise.all(promises); - - for (let [success, message] of results) { - if (!success) didError = true; - let multiline = message.indexOf("\n") >= 0; - if (multiline) sep(); - log(`${success ? symbols.success : symbols.error} ${message}`); - if (multiline) sep(); - } - - sep(); - - if (didError) { - log(chalk.red("Found potential issues on your machine :(")); - } else { - log(chalk.green("Everything looks all right!")); - } - - sep(); -} - -run().then(function () { - process.exit(0); -}, function (err) { - console.error(err.stack); - process.exit(1); -}); diff --git a/packages/babel-cli/src/babel-doctor/rules/deduped.js b/packages/babel-cli/src/babel-doctor/rules/deduped.js deleted file mode 100644 index 64f5afddab..0000000000 --- a/packages/babel-cli/src/babel-doctor/rules/deduped.js +++ /dev/null @@ -1,31 +0,0 @@ -export default async function (packages) { - let foundDeps = {}; - let foundDuplicated = false; - let duplicatedPackages = {}; - - function checkDep(name) { - if (name.indexOf("babel-") === 0 && foundDeps[name]) { - foundDuplicated = true; - duplicatedPackages[name] = (duplicatedPackages[name] || 0) + 1; - } - - foundDeps[name] = true; - } - - for (let pkg of packages) { - checkDep(pkg.name); - } - - if (foundDuplicated) { - let msg = "Found these duplicate packages:\n\n"; - - for (let name in duplicatedPackages) { - msg += `- ${name} x ${duplicatedPackages[name]}\n`; - } - - msg += "\nRecommend running `npm dedupe`"; - return [false, msg]; - } else { - return [true, "No duplicate babel packages found"]; - } -} diff --git a/packages/babel-cli/src/babel-doctor/rules/has-config.js b/packages/babel-cli/src/babel-doctor/rules/has-config.js deleted file mode 100644 index 605cd457a7..0000000000 --- a/packages/babel-cli/src/babel-doctor/rules/has-config.js +++ /dev/null @@ -1,29 +0,0 @@ -import path from "path"; -import fs from "fs"; - -export default async function () { - let cwd = process.cwd(); - let parts = cwd.split(path.sep); - - do { - let loc = parts.join(path.sep); - if (!loc) break; - - let babelrc = path.join(loc, ".babelrc"); - if (fs.existsSync(babelrc)) { - return [true, `Found config at ${babelrc}`]; - } - - let packagejson = path.join(loc, "package.json"); - if (fs.existsSync(packagejson)) { - let pkg = require(packagejson); - if (pkg.babel) { - return [true, `Found config at ${packagejson}`]; - } - } - - parts.pop(); - } while (parts.length); - - return [false, "Found no .babelrc config"]; -} diff --git a/packages/babel-cli/src/babel-doctor/rules/index.js b/packages/babel-cli/src/babel-doctor/rules/index.js deleted file mode 100644 index 48e3754718..0000000000 --- a/packages/babel-cli/src/babel-doctor/rules/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export { default as hasConfig } from "./has-config"; -export { default as deduped } from "./deduped"; -export { default as latestPackages } from "./latest-packages"; -export { default as npm } from "./npm-3"; diff --git a/packages/babel-cli/src/babel-doctor/rules/latest-packages.js b/packages/babel-cli/src/babel-doctor/rules/latest-packages.js deleted file mode 100644 index ddea4a2efa..0000000000 --- a/packages/babel-cli/src/babel-doctor/rules/latest-packages.js +++ /dev/null @@ -1,55 +0,0 @@ -import request from "request"; - -let cache = {}; - -function getInfo(packageName) { - if (cache[packageName]) { - return cache[packageName]; - } else { - return cache[packageName] = new Promise(function (resolve, reject) { - request.get({ - url: `https://registry.npmjs.org/${packageName}/latest`, - json: true - }, function (err, res, body) { - if (err) { - reject(err); - } else { - resolve(cache[packageName] = body); - } - }); - }); - } -} - -export default async function (packages) { - let filteredPackages = []; - let promises = []; - - for (let pkg of packages) { - if (pkg.name.indexOf("babel-") !== 0) continue; - - promises.push(getInfo(pkg.name)); - filteredPackages.push(pkg); - } - - let infos = await Promise.all(promises); - let messages = []; - - for (let i = 0; i < infos.length; i++) { - let info = infos[i]; - let pkg = filteredPackages[i]; - - // https://github.com/babel/babel/issues/2915 - if (pkg.name === "babel-runtime") continue; - - if (info.version !== pkg.version) { - messages.push(`${pkg.name} - Latest is ${info.version}. Local version is ${pkg.version}`); - } - } - - if (messages.length) { - return [false, `We found some outdated packages:\n\n- ${messages.join("\n- ")}`]; - } else { - return [true, "All babel packages appear to be up to date"]; - } -} diff --git a/packages/babel-cli/src/babel-doctor/rules/npm-3.js b/packages/babel-cli/src/babel-doctor/rules/npm-3.js deleted file mode 100644 index d1be0b5b46..0000000000 --- a/packages/babel-cli/src/babel-doctor/rules/npm-3.js +++ /dev/null @@ -1,20 +0,0 @@ -/* eslint max-len: 0 */ - -import binVersionCheck from "bin-version-check"; -import chalk from "chalk"; - -export default function () { - return new Promise(function (resolve) { - binVersionCheck("npm", ">=3.3.0", function (err) { - if (err) { - let message = `Your npm version is outdated. Upgrade to the latest version by running:\n$ ${chalk.magenta("npm install -g npm")}.`; - if (process.platform === "win32") { - message += ` See this guide if you are having trouble upgrading: ${chalk.underline.blue("https://github.com/npm/npm/wiki/Troubleshooting#upgrading-on-windows")}`; - } - resolve([false, message]); - } else { - resolve([true, "You're on npm >=3.3.0"]); - } - }); - }); -}