Merge pull request #7966 from webpack/refactor-remove-webpack-command-from-clis
refactor: remove `webpack-command` from CLIs
This commit is contained in:
commit
4430524921
|
@ -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}')...`
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue