Estoy creando una aplicación Node y React, ambas usando TypeScript. Su árbol de directorios es el siguiente:
Mi pregunta:
Dado que estoy usando el mismo lenguaje para ambas pilas, y en el futuro se agregará React Native también usando TypeScript, me pregunto cómo puedo crear un grupo de clases para usar con todas ellas.
Por qué quiero hacer esto:
SECO (No te repitas): Mi intención es aprovechar al máximo el uso del mismo lenguaje de programación en todas las capas, por lo que no tiene sentido crear dos clases iguales.
Lo que he probado hasta ahora:
Creé una tercera carpeta llamada "util" y puse una clase genérica solo para probar Node y React usándola. Me gusta esto:
En Node.js utilicé el siguiente comando para importarlo:
import Person from "../../util/person.class";Y en React.js, usé la misma lógica para importarlo:
import Person from "../../util/person.class";Como ya esperaba, ambos niegan usar archivos que están fuera de sus respectivas carpetas raíz:
También busqué en Internet sobre esto y encontré un comando de "expulsión" que, una vez que se usa, no hay vuelta atrás, lo que sea. Me gustaría evitar tales formas. ¿Hay algún enfoque en el que pueda tomar a mi favor?
También quiero mencionar que creé un tsconfig.json para backend usando "tsc --init" y configuré rootDir como "./src/" y outputDir como "./dist/".
Gracias.
Puede configurar un tercer proyecto que tenga la funcionalidad compartida. Luego, puede publicar el paquete compartido en un repositorio npm. Y luego puede instalar el paquete compartido en el proyecto frontend y backend.
Si desea enviar la reacción desde el servidor, los archivos de front-end deben estar en la carpeta de back-end
/app root / back-end /shared-front-end-classes /front-end-desktop /front-end-mobileAunque esta no es la mejor solución.
La mejor solución es alojar el front-end en un servidor diferente y hacer que el back-end sea totalmente funcional con API.
Tengo un blog que alojo el
Páginas de Github "Soporte reaccionar a través de un pequeño paquete npm "
Alojado en Heroku
Estoy usando mongoAtlas "Una base de datos en la nube"
ahora tiene 3 lugares separados para guardar todo su código de forma independiente entre sí
Ahora, para su otro problema, desea usar las mismas clases en los dos front-end
Para mí, generalmente hago un pequeño repositorio con todos los componentes/páginas que quiero y luego lo importo en cualquier proyecto para uso futuro.
No estoy seguro si esto sigue el concepto DRY pero no escribirás tu código dos veces