es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

NPM 8 Workspaces – Instalar un paquete como dependencia de otro paquete en un monorepo.

Diga que tengo la siguiente estructura

packages
  - @my-scope/packageA
  - @my-scope/packageB
  - @my-scope/packageC

Digamos que quiero instalar packageA como una dependencia de packageB. Con los workspaces de NPM 8, pensaría que esto debería funcionar:

npm install @my-scope/packageA --workspace=@my-scope/packageB

En cambio, obtengo esto:

npm ERR! code E404
npm ERR! 404 Not Found - GET https://registry.npmjs.org/@my-scope%2fpackageA - No encontrado
npm ERR! 404 'my-scope/packageA@*' no está en este registro.
npm ERR! 404 Deberías molestar al autor para que lo publique (¡o usa el nombre tú mismo!)
npm ERR! 404
npm ERR! 404 Ten en cuenta que también puedes instalar desde un
npm ERR! 404 paquete tarball, carpeta, URL http o URL git.

Claramente está intentando obtenerlo del registro (y no, aún no lo he publicado, no está listo), pero quiero que reconozca que esta dependencia está en mi proyecto como un espacio de trabajo. ¿Alguien sabe por qué podría estar sucediendo esto? No he encontrado muchos recursos útiles que expliquen cómo instalar dependencias desde dentro de tu monorepo (ni siquiera sé cómo se llaman…).

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para instalar packageA como una dependencia de packageB dentro de un monorepo utilizando NPM 8 workspaces, puedes utilizar el siguiente comando:

    npm install --save @my-scope/packageA

    Esto agregará packageA como una dependencia en el archivo package.json de packageB y creará un enlace simbólico dentro del monorepo en lugar de obtenerlo del registro.

    El mensaje de error que recibiste indica que NPM no pudo encontrar packageA en el registro, lo cual es esperado ya que el paquete aún no ha sido publicado. Puedes continuar desarrollando packageA localmente dentro de tu monorepo y utilizar el comando anterior para agregarlo como una dependencia en otros paquetes dentro del monorepo.

    Instalar dependencias desde un monorepo también se conoce como desarrollo local o uso de paquetes locales, donde haces referencia a los paquetes desde dentro del monorepo en lugar de obtenerlos del registro. Esta es una práctica común en monorepos y es compatible con NPM 8 workspaces.

Comments are closed.