proyecto nuevo generar empezar crear con componente como comandos cli abrir angular

nuevo - crear proyecto angular



¿Qué tipo de estructura de carpetas se debe usar con Angular 2? (8)

Creo que estructurar el proyecto por funcionalidades es un método práctico. Hace que el proyecto sea escalable y fácil de mantener. Y hace que cada parte del proyecto funcione con total autonomía. Déjame saber lo que piensas acerca de esta estructura a continuación: ESTRUCTURA DE PROYECTO DE TIPOLOGÍA ANGULAR - ANGULAR 2

fuente: http://www.angulartypescript.com/angular-typescript-project-structure/

Soy un desarrollador de Angular 1 que está empezando a aprender sobre Angular 2. Hay muchos tipos diferentes de métodos de estructura de carpetas según el material de capacitación. Voy a enumerar cada uno a continuación y me encantaría conocer las opiniones de las personas sobre cuál debo usar y por qué. Además, si hay un método que no está en la lista pero cree que funciona mejor, no dude en enumerarlo también.

Al observar todo esto, el método # 3 es más o menos como estaba haciendo mis aplicaciones Angular 1.

Método 1: angular2-inicio rápido

Fuente: https://angular.io/guide/quickstart

Estructura de carpeta:

Método 2: ng-book2

Fuente: https://www.ng-book.com/2/ (tiene que pagar para ver los archivos)

Estructura de carpeta:

Método 3: mgechev / angular2-seed

Fuente: https://github.com/mgechev/angular2-seed

Estructura de carpeta:


Entonces, después de investigar más, terminé con una versión ligeramente revisada del Método 3 (mgechev / angular2-seed).

Básicamente moví los componentes para ser un directorio de nivel principal y luego cada característica estará dentro de él.


He estado usando ng cli últimamente, y fue realmente difícil encontrar una buena manera de estructurar mi código.

El más eficiente que he visto hasta ahora proviene del repositorio mrholek ( https://github.com/mrholek/CoreUI-Angular ).

Esta estructura de carpetas le permite mantener limpio su proyecto raíz y estructurar sus componentes, evita la convención de nomenclatura redundante (a veces inútil) de la Guía de estilo oficial.

Además, esta estructura es útil para agrupar la importación cuando sea necesario y evitar tener 30 líneas de importación para un solo archivo.

src | |___ app | | |___ components/shared | | |___ header | | | |___ containers/layout | | |___ layout1 | | | |___ directives | | |___ sidebar | | | |___ services | | |___ *user.service.ts* | | | |___ guards | | |___ *auth.guard.ts* | | | |___ views | | |___ about | | | |___ *app.component.ts* | | | |___ *app.module.ts* | | | |___ *app.routing.ts* | |___ assets | |___ environments | |___ img | |___ scss | |___ *index.html* | |___ *main.ts*



Quizás algo como esta estructura:

|-- app |-- modules |-- home |-- [+] components |-- pages |-- home |-- home.component.ts|html|scss|spec |-- home-routing.module.ts |-- home.module.ts |-- core |-- authentication |-- authentication.service.ts|spec.ts |-- footer |-- footer.component.ts|html|scss|spec.ts |-- guards |-- auth.guard.ts |-- no-auth-guard.ts |-- admin-guard.ts |-- http |-- user |-- user.service.ts|spec.ts |-- api.service.ts|spec.ts |-- interceptors |-- api-prefix.interceptor.ts |-- error-handler.interceptor.ts |-- http.token.interceptor.ts |-- mocks |-- user.mock.ts |-- services |-- srv1.service.ts|spec.ts |-- srv2.service.ts|spec.ts |-- header |-- header.component.ts|html|scss|spec.ts |-- core.module.ts |-- ensureModuleLoadedOnceGuard.ts |-- logger.service.ts |-- shared |-- components |-- loader |-- loader.component.ts|html|scss|spec.ts |-- buttons |-- favorite-button |-- favorite-button.component.ts|html|scss|spec.ts |-- collapse-button |-- collapse-button.component.ts|html|scss|spec.ts |-- directives |-- auth.directive.ts|spec.ts |-- pipes |-- capitalize.pipe.ts |-- safe.pipe.ts |-- configs |-- app-settings.config.ts |-- dt-norwegian.config.ts |-- scss |-- [+] partials |-- _base.scss |-- styles.scss |-- assets


Si el proyecto es pequeño y seguirá siendo pequeño, recomendaría estructurar por tipo (Método 2: ng-book2)

app |- components | |- hero | |- hero-list | |- villain | |- ... |- services | |- hero.service.ts | |- ... |- utils |- shared

Si el proyecto crecerá, debe estructurar sus carpetas por dominio (Método 3: mgechev / angular2-seed)

app |- heroes | |- hero | |- hero-list | |- hero.service.ts |- villains | |- villain | |- ... |- utils |- shared

Es mejor seguir los documentos oficiales.
https://angular.io/guide/styleguide#application-structure-and-ngmodules


Sugiero la siguiente estructura, que podría violar algunas convenciones existentes.

Me estaba esforzando por reducir la redundancia de nombres en el camino, y tratando de mantener los nombres cortos en general.

Entonces no hay / app / components / home / home.component.ts | html | css.

En cambio, se ve así:

|-- app |-- users |-- list.ts|html|css |-- form.ts|html|css |-- cars |-- list.ts|html|css |-- form.ts|html|css |-- configurator.ts|html|css |-- app.component.ts|html|css |-- app.module.ts |-- user.service.ts |-- car.service.ts |-- index.html |-- main.ts |-- style.css


Voy a usar este. Muy similar al tercero mostrado por @Marin.

app | |___ images | |___ fonts | |___ css | |___ *main.ts* | |___ *main.component.ts* | |___ *index.html* | |___ components | | | |___ shared | | | |___ home | | | |___ about | | | |___ product | |___ services | |___ structures