Búsqueda de sitios web

node.js - Configuración de proyecto completo en TypeScript con Angular 2(+) y servidor Node/Express


Estoy buscando la mejor práctica de un proyecto como este:

  • Cliente de Angular 2 (4) escrito en TypeScript
  • Backend de Node/Express también escrito en TypeScript
  • Algunos modelos compartidos (TypeScript) utilizados tanto por el código del cliente como por el del servidor.

¿Deberían cliente/servidor/compartido separarse en 3 proyectos de nodo? ¿O es posible tener todo en un solo lugar, qué herramientas/configuración se pueden usar para lograr esto?

Respuesta #1

Normalmente querrás dos carpetas para tus archivos fuente del cliente y tus archivos del servidor, pero con tus piezas compartidas podría ser mejor mantenerlas en tres carpetas separadas para una organización futura. Sin embargo, definitivamente es posible mantener todo en un solo lugar si esa es simplemente tu ruta preferida. Recomendaría encarecidamente echar un vistazo a un par de plantillas de node/express angular de GitHub, como...

Iniciador Angular 2 Express (angular 2 node express)

Inicio Universal de Angular (angular 4 nodo)

Plantilla inicial Angular MEAN (angular 2/4 node express mongodb)

para tener una idea de cómo otras personas suelen configurar estos proyectos. También son una gran base para cualquiera de tus proyectos futuros.

Respuesta #2

Puedes tener un solo repositorio para tu proyecto, luego crear un directorio client y un directorio server de la siguiente manera:

server/
|- src/
|- package.json
|- tsconfig.json
|- gulpfile.js
client/
|- src/
|- package.json
|- tsconfig.json
|- .angular-cli.json

Para el lado del servidor, necesitarás instalar los siguientes módulos:

npm install --save express socket.io @types/express @types/socket.io

puedes integrar algunas tareas de compilación fácilmente con tu código typescript usando gulp:

npm install --save-dev typescript gulp gulp-typescript

Para el lado del cliente, usa Angular CLI para generar tu proyecto.

Puedes echar un vistazo al código fuente de una aplicación de chat escrita completamente en TypeScript, usando Socket.io, Node.js y Angular aquí