Skip to content

Commit

Permalink
Merge pull request #7966 from webpack/refactor-remove-webpack-command…
Browse files Browse the repository at this point in the history
…-from-clis

refactor: remove `webpack-command` from CLIs
  • Loading branch information
sokra committed Sep 10, 2018
2 parents c5eab67 + b717aad commit 4430524
Showing 1 changed file with 12 additions and 22 deletions.
34 changes: 12 additions & 22 deletions bin/webpack.js
Expand Up @@ -50,6 +50,7 @@ const isInstalled = packageName => {
* @property {string} binName name of the executable file
* @property {string} alias shortcut for choice
* @property {boolean} installed currently installed?
* @property {boolean} recommended is recommended
* @property {string} url homepage
* @property {string} description description
*/
Expand All @@ -62,6 +63,7 @@ const CLIs = [
binName: "webpack-cli",
alias: "cli",
installed: isInstalled("webpack-cli"),
recommended: true,
url: "https://github.com/webpack/webpack-cli",
description: "The original webpack full-featured CLI."
},
Expand All @@ -71,6 +73,7 @@ const CLIs = [
binName: "webpack-command",
alias: "command",
installed: isInstalled("webpack-command"),
recommended: false,
url: "https://github.com/webpack-contrib/webpack-command",
description: "A lightweight, opinionated webpack CLI."
}
Expand All @@ -87,7 +90,9 @@ if (installedClis.length === 0) {
"One CLI for webpack must be installed. These are recommended choices, delivered as separate packages:";

for (const item of CLIs) {
notify += `\n - ${item.name} (${item.url})\n ${item.description}`;
if (item.recommended) {
notify += `\n - ${item.name} (${item.url})\n ${item.description}`;
}
}

console.error(notify);
Expand All @@ -103,9 +108,7 @@ if (installedClis.length === 0) {
)}".`
);

let question = `Which one do you like to install (${CLIs.map(
item => item.name
).join("/")}):\n`;
let question = `Do you want to install 'webpack-cli' (yes/no): `;

const questionInterface = readLine.createInterface({
input: process.stdin,
Expand All @@ -114,35 +117,22 @@ if (installedClis.length === 0) {
questionInterface.question(question, answer => {
questionInterface.close();

const normalizedAnswer = answer.toLowerCase();
const selectedPackage = CLIs.find(item => {
return item.name === normalizedAnswer || item.alias === normalizedAnswer;
});
const normalizedAnswer = answer.toLowerCase().startsWith("y");

if (!normalizedAnswer) {
console.error(
"One CLI needs to be installed alongside webpack to use the CLI."
);
process.exitCode = 1;

return;
} else if (!selectedPackage) {
console.error(
"No matching choice.\n" +
"One CLI needs to be installed alongside webpack to use the CLI.\n" +
"Try to installing your CLI of choice manually."
"You need to install 'webpack-cli' to use webpack via CLI.\n" +
"You can also install the CLI manually."
);
process.exitCode = 1;

return;
}

const packageName = selectedPackage.package;
const packageName = "webpack-cli";

console.log(
`Installing '${
selectedPackage.name
}' (running '${packageManager} ${installOptions.join(
`Installing '${packageName}' (running '${packageManager} ${installOptions.join(
" "
)} ${packageName}')...`
);
Expand Down

0 comments on commit 4430524

Please sign in to comment.