
вы должны сначала убедиться, что на компьютере имеется среда node.js
, и выполнить следующий код в командной строке, чтобы инициализировать файл package.json
npm init -y
. При этом обязательно будет сообщено об ошибке. выполнение mycli в командной строке.

Настройте пользовательскую команду
package.json чтобы добавить поле bin , и свяжите команду mycli .
«bin»: {
"mycli": "./test.js"
}, /test.jsconsole.log («команда mycli выполнена успешно»);
install , но проект не опубликован в npm, поэтому на данный момент используйте команду npm link для свяжите команду mycli с глобальным миром.В настоящее время, если вы запустите mycli из командной строки, об ошибке больше не будет сообщаться.

конфигурации скрипта
test.js:
console.log("Выполнение команды mycli успешно"); Затем выполните mycli , и появится всплывающее окно с ошибкой.

Это связано с тем, что выполнение команды mycli эквивалентно разрешению компьютеру выполнить файл, а компьютерная система не может напрямую выполнить файл js . Это требует от нас добавления конфигурации в первую строку кода сценария для указания node.js на компьютере для выполнения этого файла сценария js.
#!/usr/bin/env node
Поскольку среда выполнения была изменена, вам необходимо удалить ранее связанные файлы. Местоположение файла может быть C:Program Filesnodejsnode_modules . Найдите mycli и удалите его, а затем выполните. npm link еще раз.
Теперь снова выполните mycli на консоли, и вы увидите, что консоль печатает правильно.
Chalk для вывода цветных шрифтовOra аналогиченcommander проектированияinquirer например, задавать вопросы...)Chalk
npm install [email protected] -S
const chalk = require("мел");
// мел
// const hello = chalk.red("привет");
// const hello = chalk.blue.bgRed("привет");
// const hello = chalk.blue.bgYellow("привет");
const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("привет");
console.log(привет); 
Ora
npm install [email protected] -S
const ora = require("ora");
// ора
const spinner = ora({
текст: "Установка..."
});
спиннер.старт();
setTimeout(() => {
// спиннер.стоп();
spinner.succeed("Установка прошла успешно");
// console.log("Установка прошла успешно");
}, 2000) start загрузкиstop загрузкиsucceed завершение загрузки с успешным стилем
команд
, такие как vue -V git --version vue create и другие команды, для реализации таких команд должны использовать библиотеку Commander .
-V --help и т. д. после используемой команды можно понимать как параметры команды. Затем нам нужно получить эти параметры и обрабатывать различные события, оценивая различия в параметрах.
В среде узла этот параметр можно получить process.argv . Библиотека командира помогает нам инкапсулировать некоторые методы без необходимости оценивать инструкции, вводимые пользователем.
npm install [email protected] -S,
const Commander = require("Commander");
// ...
Commander.parse(process.argv); // После завершения установки Commander автоматически предоставит нам некоторые команды, такие как --help . Давайте проверим это ниже:
mycli --help
Commander. . version("1.0.0"); Выполните mycli -V , и вы увидите, что консоль печатает номер версии 1.0.0 .
Пользовательский метод команды
commander.option(指令名, 描述, 回调函数)
--init :Commander.option("--init", "this is init", () => {
// мел
// const hello = chalk.red("привет");
// const hello = chalk.blue.bgRed("привет");
// const hello = chalk.blue.bgYellow("привет");
const hello = chalk.rgb(200, 200, 200).bgRgb(0, 200, 3)("привет");
console.log(привет);
// ора
const spinner = ora({
текст: "Установка..."
});
спиннер.старт();
setTimeout(() => {
// спиннер.стоп();
spinner.succeed("Установка прошла успешно");
// console.log("Установка прошла успешно");
}, 1000)
}) Теперь выполните тест mycli --init :

: Commander.option("--number <num>", "log a number", (num) => {
console.log(число);
}) <参数名> указывает параметры, которые необходимо передавать, а [参数名] указывает параметры, которые не требуется передавать. Введите mycli --number 100 на консоли и нажмите Enter. Вы увидите 100 .
Пользовательский метод команды
Commander.command("create <projectName>").action((projectName)=>{
console.log(имяпроекта);
}) Выполните mycli create xx и нажмите Enter. Вы можете видеть xx .
Просмотрите справку
, выполнив mycli --help . Вы увидите, что инструкции и команды, которые мы только что настроили, появляются в списке справки.

запроса
npm install inquirer -S
prompt для запросаinquirer.prompt([
{
тип: «вход»,
имя: "имя пользователя",
сообщение: «Пожалуйста, введите имя пользователя:»
}
]).then((ответ)=>{
}) type указывает тип вопроса, а значение может быть: input , number , password , editor и т. д.
answer : {username: 输入的值}
input типа вводаconst inquirer = require("inquirer");
Commander.command("добавить пользователя").action(() => {
запросчик.подсказка([
{
тип: «вход»,
имя: "имя пользователя",
сообщение: «Пожалуйста, введите имя пользователя:»
}
]).then((ответ) => {
console.log(ответ);
})
}) confirmCommander.command("testcon").action(() => {
запросчик.подсказка([
{
введите: «подтвердить»,
имя: «возраст»,
сообщение: «Вам больше 18 лет?»
}
]).then((ответ) => {
console.log(ответ);
})
}) Введите y или n чтобы вынести решение.

list типов выбора радиокомандера.command("testlist").action(() => {
запросчик.подсказка([
{
тип: «список»,
имя: "либ",
сообщение: "Выберите платформу для использования:",
выбор: [
"вюе2",
"вю3",
«реагировать»,
"стройный",
]
}
]).then((ответ) => {
console.log(ответ);
})
}) Выполните команду mycli testlist :

download-git-repo — это инструмент для извлечения кода.
Установите
npm install [email protected] -S,
const downgit = require("download-git-repo");
downgit("github:kongcodes/vue3-vant", downUrl, {clone: false}, function (err) {
console.log(ошибка)
}) Под первым параметром метода downgit подразумевается загрузка шаблона проекта vue3-vant пользователя kongcodes с github. Второй параметр downUrl — это каталог, в который следует загрузить шаблон. Третий параметр clone — использовать ли git clone для загрузки. Четвертый параметр — это некоторые действия, которые необходимо выполнить после завершения загрузки.
commandCommander.command("create <projectName>").action((projectName) => { в сочетании с методом команды
const spinner = ora({
текст: "Загрузка https://github.com/kongcodes/vue3-vant..."
});
спиннер.старт();
fs.mkdirSync(`./${projectName}`);
const downUrl = `${process.cwd()}\${projectName}`;
downgit("github:kongcodes/vue3-vant", downUrl, {clone: false}, function (err) {
если (ошибка) выбросить ошибку;
спиннер.стоп();
console.log(chalk.green("успешное завершение работы"));
})
}) Выполните mycli create pro и нажмите Enter. Каталог pro будет создан в текущем каталоге, и шаблон vue3-vant будет загружен в этот каталог.
https://github.com/kongcodes/mycli