create-proyect-cli 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/index.js +104 -0
- package/package.json +18 -0
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Create Proyect CLI
|
|
2
|
+
|
|
3
|
+
Este CLI te permite realizar diversas acciones relacionadas con repositorios y proyectos, proporcionando una interfaz interactiva para simplificar tareas comunes. Puedes clonar repositorios, crear proyectos en Angular, React o Ionic, eliminar repositorios y ejecutar comandos npm en repositorios clonados.
|
|
4
|
+
|
|
5
|
+
## Instalación
|
|
6
|
+
|
|
7
|
+
Para instalar y utilizar este CLI, sigue estos pasos:
|
|
8
|
+
|
|
9
|
+
**1. Asegúrate de tener Node.js instalado en tu sistema.**
|
|
10
|
+
|
|
11
|
+
**2. Ejecuta el siguiente comando para instalar el CLI globalmente:**
|
|
12
|
+
|
|
13
|
+
` npm install -g create-proyect-cli `
|
|
14
|
+
|
|
15
|
+
## Uso
|
|
16
|
+
|
|
17
|
+
Una vez instalado, puedes ejecutar el CLI desde cualquier ubicación en tu terminal usando el siguiente comando:
|
|
18
|
+
|
|
19
|
+
`create-proyect-cli`
|
|
20
|
+
|
|
21
|
+
El CLI te guiará a través de las diferentes acciones disponibles, proporcionando opciones interactivas para personalizar tu experiencia.
|
|
22
|
+
|
|
23
|
+
## Acciones Disponibles
|
|
24
|
+
|
|
25
|
+
**1. Clonar Repositorio:**
|
|
26
|
+
|
|
27
|
+
Clona un repositorio Git proporcionando la URL del repositorio y la ubicación de clonación.
|
|
28
|
+
|
|
29
|
+
**2. Crear Proyecto:**
|
|
30
|
+
|
|
31
|
+
Crea un nuevo proyecto en Angular, React o Ionic. Selecciona el tipo de proyecto y proporciona un nombre.
|
|
32
|
+
|
|
33
|
+
**3. Eliminar Repositorio:**
|
|
34
|
+
|
|
35
|
+
Elimina un repositorio localmente. Ingresa la ubicación del repositorio que deseas eliminar.
|
|
36
|
+
|
|
37
|
+
**4. Ejecutar npm en el Repositorio Clonado:**
|
|
38
|
+
|
|
39
|
+
Navega hasta la ubicación del repositorio clonado e instala las dependencias con el comando npm.
|
|
40
|
+
|
|
41
|
+
## Contribuir
|
|
42
|
+
|
|
43
|
+
Si encuentras errores, tienes sugerencias de mejora o deseas contribuir de alguna manera, no dudes en crear un issue o enviar una solicitud de extracción.
|
|
44
|
+
|
|
45
|
+
**¡Gracias por usar este CLI!**
|
|
46
|
+
|
|
47
|
+
**¡Esperamos que sea útil para tus proyectos!**
|
package/index.js
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import figlet from 'figlet';
|
|
5
|
+
|
|
6
|
+
// Función para clonar un repositorio
|
|
7
|
+
function cloneRepository(repoUrl, cloneLocation) {
|
|
8
|
+
const cloneCommand = `git clone ${repoUrl} ${cloneLocation}`;
|
|
9
|
+
const cloneSpinner = ora('Clonando repositorio...').start();
|
|
10
|
+
|
|
11
|
+
exec(cloneCommand, (error, stdout, stderr) => {
|
|
12
|
+
if (error) {
|
|
13
|
+
cloneSpinner.fail(`Error al clonar el repositorio: ${stderr}`);
|
|
14
|
+
} else {
|
|
15
|
+
cloneSpinner.succeed(`Repositorio clonado exitosamente en: ${cloneLocation}`);
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Función para crear un proyecto en Angular, React o Ionic
|
|
21
|
+
function createProject(projectType, projectName) {
|
|
22
|
+
let createCommand = '';
|
|
23
|
+
let createSpinnerText = '';
|
|
24
|
+
|
|
25
|
+
switch (projectType) {
|
|
26
|
+
case 'Angular':
|
|
27
|
+
createCommand = `npx ng new ${projectName}`;
|
|
28
|
+
createSpinnerText = 'Creando proyecto Angular...';
|
|
29
|
+
break;
|
|
30
|
+
case 'React':
|
|
31
|
+
createCommand = `npx create-react-app ${projectName}`;
|
|
32
|
+
createSpinnerText = 'Creando proyecto React...';
|
|
33
|
+
break;
|
|
34
|
+
case 'Ionic':
|
|
35
|
+
createCommand = `npx ionic start ${projectName} blank`;
|
|
36
|
+
createSpinnerText = 'Creando proyecto Ionic...';
|
|
37
|
+
break;
|
|
38
|
+
default:
|
|
39
|
+
console.error('Tipo de proyecto no reconocido.');
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const createSpinner = ora(createSpinnerText).start();
|
|
44
|
+
|
|
45
|
+
exec(createCommand, (error, stdout, stderr) => {
|
|
46
|
+
if (error) {
|
|
47
|
+
createSpinner.fail(`Error al crear el proyecto: ${stderr}`);
|
|
48
|
+
} else {
|
|
49
|
+
createSpinner.succeed(`Proyecto ${projectName} creado exitosamente.`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Presentación del texto con Figlet
|
|
55
|
+
figlet('Create Project CLI', (err, data) => {
|
|
56
|
+
if (err) {
|
|
57
|
+
console.error('Error al generar el texto de presentación.');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
console.log(data);
|
|
61
|
+
|
|
62
|
+
const questions = [
|
|
63
|
+
{
|
|
64
|
+
type: 'list',
|
|
65
|
+
name: 'action',
|
|
66
|
+
message: '¿Qué acción desea realizar?',
|
|
67
|
+
choices: ['Clonar repositorio', 'Crear proyecto'],
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
type: 'input',
|
|
71
|
+
name: 'repoUrl',
|
|
72
|
+
message: 'Ingrese la URL del repositorio:',
|
|
73
|
+
when: (answers) => answers.action === 'Clonar repositorio',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'input',
|
|
77
|
+
name: 'cloneLocation',
|
|
78
|
+
message: 'Ingrese la ubicación donde desea clonar el repositorio:',
|
|
79
|
+
when: (answers) => answers.action === 'Clonar repositorio',
|
|
80
|
+
default: './',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
type: 'list',
|
|
84
|
+
name: 'projectType',
|
|
85
|
+
message: 'Seleccione el tipo de proyecto:',
|
|
86
|
+
choices: ['Angular', 'React', 'Ionic'],
|
|
87
|
+
when: (answers) => answers.action === 'Crear proyecto',
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
type: 'input',
|
|
91
|
+
name: 'projectName',
|
|
92
|
+
message: 'Ingrese el nombre del proyecto:',
|
|
93
|
+
when: (answers) => answers.action === 'Crear proyecto',
|
|
94
|
+
},
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
inquirer.prompt(questions).then((answers) => {
|
|
98
|
+
if (answers.action === 'Clonar repositorio') {
|
|
99
|
+
cloneRepository(answers.repoUrl, answers.cloneLocation);
|
|
100
|
+
} else if (answers.action === 'Crear proyecto') {
|
|
101
|
+
createProject(answers.projectType, answers.projectName);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "create-proyect-cli",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
8
|
+
"build": "tsc index.ts"
|
|
9
|
+
},
|
|
10
|
+
"type": "module",
|
|
11
|
+
"author": "Carlos Ignacio Olano Mares",
|
|
12
|
+
"license": "ISC",
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"figlet": "^1.7.0",
|
|
15
|
+
"inquirer": "^9.2.12",
|
|
16
|
+
"ora": "^7.0.1"
|
|
17
|
+
}
|
|
18
|
+
}
|