Búsqueda de sitios web

typescript - NX Angular múltiples librerías con el mismo nombre


Entonces estoy usando Angular con NX y tengo los siguientes grupos books y cars. Para ambos grupos quiero crear una biblioteca overview con una tabla para ver los libros o los coches.

Así que creo la biblioteca bajo libs/books/overview. A continuación, quiero hacer lo mismo para coches libs/cars/overview. Pero luego me encuentro con este problema:

Error: Project name already exists.

¿Necesito nombrar las bibliotecas como books-overview? Entonces crearía la siguiente biblioteca: libs/books/books-overview. books es redundante, por lo que no parece la mejor opción.

Respuesta #1

El nombre de la carpeta no tiene que ser el mismo que el de la aplicación. En su lugar, podrías crear una carpeta principal para cada parte de tu nombre de biblioteca separada por guiones.

Puedes crear una biblioteca con el nombre 'books-overview' en la carpeta books/overview.


Ejecutando el comando con la estructura de carpetas como nombre, decide correctamente el nombre. Ejecutando

npx ng generate @nrwl/workspace:library --name=books/overview

generará la biblioteca 'books-overview' en la carpeta books/overview.


Por ejemplo, esta es la configuración de nuestra aplicación (también usamos nx):

// angular.json excerpt
"api-java-model": {
  "projectType": "library",
  "root": "libs/api/java/model",
...
},
"api-java-client": {
  "projectType": "library",
  "root": "libs/api/java/client",
...

De esa manera no tienes una colisión de carpetas.

Respuesta #2

Creo que la mejor opción aquí es crear una carpeta overviews con las librerías dentro. Por ejemplo:

libs/overviews/cars
libs/overviews/books

Artículos relacionados