
você deve primeiro garantir que haja um ambiente node.js no computador
e executar o seguinte código na linha de comando para inicializar um arquivo package.json
npm init -y
. Neste momento, um erro será definitivamente relatado quando. executando mycli na linha de comando.

Configure o comando personalizado
package.json para adicionar o campo bin e associe mycli .
"bin": {.
"mycli": "./test.js"
}, /test.jsconsole.log ("comando mycli executado com sucesso"); install é necessário, mas o projeto não foi publicado no npm, portanto, por enquanto, use o comando npm link para associe mycli ao mundo global.Neste momento, se você executar mycli na linha de comando, o erro não será mais relatado.

Arquivo test.js
de configuração do script
:console.log("execução do comando mycli bem-sucedida"); Em seguida, execute mycli e uma janela pop-up de erro aparecerá.

Isso ocorre porque ao executar o comando mycli , é equivalente a deixar o computador executar o arquivo, e o sistema do computador não pode executar diretamente o arquivo js . Isso exige que adicionemos uma configuração à primeira linha do código do script para especificar node.js no programa do computador para executar este arquivo de script js.
#!/usr/bin/env node
Como o ambiente de execução mycli alterado, você precisa excluir os arquivos vinculados anteriormente. O local do arquivo pode ser C:Program Filesnodejsnode_modules . npm link novamente.
Agora execute mycli no console novamente e você verá que o console é impresso corretamente.
Chalk para gerar fontes coloridasOra efeito de carregamento, semelhante àcommanderinquirer (como: fazer perguntas...)do Chalk
npm install [email protected] -S
const giz = require("giz");
// giz
// const olá = giz.red("olá");
// const olá = giz.blue.bgRed("olá");
// const olá = giz.blue.bgYellow("olá");
const olá = giz.rgb(200, 200, 200).bgRgb(0, 200, 3)("olá");
console.log(olá); 
do Ora
npm install [email protected] -S
const ora = require("ora");
// ora
const spinner = ora({
texto: "Instalando..."
});
spinner.start();
setTimeout(() => {
//spinner.stop();
spinner.succeed("Instalação bem sucedida");
// console.log("Instalação bem sucedida");
}, 2000) start inicia o carregamentostop interrompe o carregamentosucceed termina o carregamento com estilo bem-sucedido
de comandantes
, como vue -V git --version vue create e outros comandos, precisam usar a biblioteca do comandante para implementar tais comandos.
-V --help , etc. após o comando usado pode ser entendido como os parâmetros do comando. Então precisamos obter esses parâmetros e lidar com diferentes eventos julgando as diferenças nos parâmetros.
No ambiente do nó , este parâmetro pode ser obtido através de process.argv . A biblioteca do comandante nos ajuda a encapsular alguns métodos sem que tenhamos que julgar as instruções transportadas pela entrada do usuário.
npm install [email protected] -S
const comandante = require("commander");
// ...
comandante.parse(process.argv); // Após a conclusão da instalação, o comandante nos fornecerá automaticamente alguns comandos, como --help . Vamos testar abaixo:
mycli --help
do comandante. . version("1.0.0"); Execute mycli -V e você verá que o console imprime o número da versão 1.0.0 .
O método de comando personalizado
commander.option(指令名, 描述, 回调函数)
--init :comandante.option("--init", "this is init", () => {
// giz
// const olá = giz.red("olá");
// const olá = giz.blue.bgRed("olá");
// const olá = giz.blue.bgYellow("olá");
const olá = giz.rgb(200, 200, 200).bgRgb(0, 200, 3)("olá");
console.log(olá);
// ora
const spinner = ora({
texto: "Instalando..."
});
spinner.start();
setTimeout(() => {
//spinner.stop();
spinner.succeed("Instalação bem sucedida");
// console.log("Instalação bem sucedida");
}, 1000)
}) Agora execute o teste mycli --init :

é comandante.option("--number <num>", "log a number", (num) => {
console.log(num);
}) <参数名> indica os parâmetros que devem ser passados e [参数名] indica os parâmetros que não precisam ser passados. Digite mycli --number 100 no console e pressione Enter. Você pode ver 100 será gerado.
Método de comando personalizado
comandante.command("create <projectName>").action((projectName)=>{
console.log(nomedoprojeto);
}) Execute mycli create xx e pressione Enter. Você pode ver xx é gerado no console.
Veja a ajuda
executando mycli --help . Você pode ver que as instruções e comandos que acabamos de configurar aparecem na lista de ajuda.

do inquiridor
npm instalar inquiridor -S
prompt para perguntarao inquiridor.prompt([
{
tipo: "entrada",
nome: "nome de usuário",
mensagem: "Por favor, digite o nome de usuário:"
}
]).então((resposta)=>{
}) type indica o tipo de pergunta, e o valor pode ser: input , number , password , editor , etc.
answer é {username: 输入的值}
input do tipo de entradaconst investigador = require("inquirer");
comandante.command("adicionar usuário").action(() => {
investigador.prompt([
{
tipo: "entrada",
nome: "nome de usuário",
mensagem: "Por favor, digite o nome de usuário:"
}
]).então((resposta) => {
console.log(resposta);
})
}) confirmcomandante.command("testcon").action(() => {
investigador.prompt([
{
digite: "confirmar",
nome: "idade",
mensagem: "Você tem mais de 18 anos?"
}
]).então((resposta) => {
console.log(resposta);
})
}) Digite y ou n para fazer um julgamento.

list de tipos de seleção de rádiocomandante.command("testlist").action(() => {
investigador.prompt([
{
tipo: "lista",
nome: "lib",
mensagem: "Selecione a estrutura a ser usada:",
escolhas: [
"vue2",
"vue3",
"reagir",
"esbelto",
]
}
]).então((resposta) => {
console.log(resposta);
})
}) Execute o comando mycli testlist :

download-git-repo é uma ferramenta para extrair código.
Instale
npm install [email protected] -S
const downgit = require("download-git-repo");
downgit("github:kongcodes/vue3-vant", downUrl, { clone: falso }, função (err) {
console.log(erro)
}) O primeiro parâmetro no método downgit é o download do modelo de projeto vue3-vant do usuário kongcodes do github. O segundo parâmetro downUrl é o diretório para o qual o modelo deve ser baixado. O terceiro parâmetro clone é usar git clone para fazer download. O quarto parâmetro são algumas coisas a serem executadas quando o download for concluído.
commandcomandante.command("create <projectName>").action((projectName) => { em conjunto com o método de comando
const spinner = ora({
texto: "Baixando https://github.com/kongcodes/vue3-vant..."
});
spinner.start();
fs.mkdirSync(`./${nome do projeto}`);
const downUrl = `${process.cwd()}\${projectName}`;
downgit("github:kongcodes/vue3-vant", downUrl, { clone: falso }, função (err) {
se (errar) lançar errar;
spinner.stop();
console.log(chalk.green("downgit sucesso"));
})
}) Execute mycli create pro e pressione Enter. O diretório pro será criado no diretório atual e vue3-vant será baixado para este diretório.
https://github.com/kongcodes/mycli