Estructura de Carpetas
La estructura de carpetas de este proyecto está organizada de la siguiente manera:
src
└── tu-codigo-aqui # Aquí se encuentra tu código fuente
rollup.config.js # Configuración de Rollup para la construcción del proyecto
tsconfig.json # Configuración del compilador TypeScript
package.json # Gestión de dependencias y scripts del proyecto
Dockerfile # Instrucciones para crear la imagen Docker del proyecto
Descripción de Archivos y Carpetas
src: Carpeta principal donde resides tu código fuente. Organiza aquí tus archivos según las necesidades del proyecto.rollup.config.js: Archivo de configuración para Rollup, que define cómo se debe empaquetar y transformar el código.tsconfig.json: Archivo de configuración para TypeScript que especifica las opciones del compilador y los archivos a incluir.package.json: Contiene la información del proyecto, las dependencias necesarias y los scripts de npm para ejecutar tareas comunes.Dockerfile: Archivo que define el entorno de Docker y las instrucciones para construir la imagen del proyecto.
Librerías Necesarias
Este proyecto requiere las siguientes librerías para su funcionamiento adecuado. Asegúrate de tenerlas instaladas antes de ejecutar el proyecto.
Configuración del Proyecto
El siguiente package.json muestra las dependencias y scripts necesarios:
{
"name": "el_nombre_de_tu_paquete",
"version": "1.0.0",
"description": "descripcion_de_tu_paquete",
"main": "dist/index.js",
"type": "module",
"scripts": {
"start": "node ./dist/index.cjs",
"lint": "eslint . --no-ignore",
"dev": "npm run lint && nodemon ./src/index.ts",
"build": "npx rollup -c"
},
"keywords": [],
"dependencies": {
"@elimeleth/vct-meta": "latest",
"@elimeleth/vct-baileys": "latest",
"@elimeleth/vct-telegram": "latest",
"@elimeleth/vct-flow": "latest",
},
"devDependencies": {
"@rollup/plugin-commonjs": "^25.0.8",
"@types/node": "^20.17.3",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"eslint": "^8.57.1",
"rollup": "^4.24.3",
"rollup-plugin-typescript2": "^0.36.0",
"tsx": "^4.19.2",
"typescript": "^5.6.3"
}
}
Configuración del archivo rollup
import typescript from 'rollup-plugin-typescript2'
import commonjs from '@rollup/plugin-commonjs'
export default {
input: ['src/index.ts'],
output: [
{
dir: 'dist',
entryFileNames: '[name].cjs',
format: 'cjs',
exports: 'named',
},
],
onwarn: (warning) => {
if (warning.code === 'UNRESOLVED_IMPORT') return
},
plugins: [
commonjs(),
typescript(),
],
}
Configuración del tsconfig.json
{
"compilerOptions": {
"target": "ES2022",
"module": "ES2022",
"declaration": false,
"declarationMap": false,
"moduleResolution": "node",
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": false,
"outDir": "./dist",
"baseUrl": "./",
"rootDir": "./",
"incremental": true,
"skipLibCheck": true,
"paths": {
"~/*": ["./src/*"]
}
},
"include": [
"**/*.js",
"**/*.ts"
],
"exclude": [
"node_modules",
"dist",
"**/*.test.ts",
"**/*.spec.ts",
"**e2e**",
"**mock**"
]
}
Instalación:
pnpm install ó npm install ó yarn install
Construir el distribuible
pnpm run build