Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

276
Vistas
Vincular un paquete como una dependencia del paquete Lerna para el desarrollo

La estructura de mi proyecto es la siguiente:

 packages/ client/ package.json server/ package.json shared/ package.json lerna.json package.json

El archivo package.json del client contiene las siguientes dependencias:

 { "name": "@my-project/client", "dependencies": { // ... "@my-project/shared": "*", "cool-components": "^1.0.0', // ... } }

@my-project/shared es el nombre del paquete del directorio packages/shared .

Estoy dispuesto a usar npm link para desarrollar la biblioteca cool-components y usar npm link para usar su código dentro de @my-project/client .

Actualmente, traté de ejecutar:

 cd packages/client npm link cool-components

Y para desvincular:

 npm unlink cool-components

Pero recibo un error que dice que @my-project/shared no está en el registro de NPM.

Esto es absolutamente comprensible; Cuando ejecuto comandos NPM en el ámbito de @my-project/client , no está familiarizado con sus paquetes hermanos e intenta buscar este paquete en el registro. Esta es la razón por la que debemos usar lerna add en la raíz en lugar de npm install dentro de cada paquete.

Aunque entiendo la causa, no pude encontrar una forma adecuada de usar npm link para desarrollar otro paquete mientras lo usaba dentro de mi monorepo de Lerna.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Agregas @my-project/shared a @my-project/client con:

 // this creates link between packages lerna add @my-project/shared --scope=@my-project/client

Ahora, si revisa los módulos de nodo dentro @my-project/client , debería ver @my-project/shared .

Si desea acceder a una dependencia en su paquete de nodo, use

require.resolve : // require.resolve te dará la ruta absoluta

 const packagePath = require.resolve("@my-project/build/index.js"); // to use the this package, for exampe in express.static // path.dirname will give you path until build directory // so you are going to serve up that folder app.use(express.static(path.dirname(packagePath)));

en el lado del cliente, importar el módulo desde la ruta de los módulos del nodo debería funcionar sin ninguna configuración. Si no es así, intente resolver la ruta de los módulos del nodo a la ruta absoluta.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda