Merge pull request #7966 from webpack/refactor-remove-webpack-command-from-clis

refactor: remove `webpack-command` from CLIs
This commit is contained in:
Tobias Koppers 2018-09-10 15:36:18 +02:00 committed by GitHub
commit 4430524921
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 22 deletions

View File

@ -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
*/
@ -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."
},
@ -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."
}
@ -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);
@ -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,
@ -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}')...`
);