> Faqs > Cómo enlazar un proyecto con un package de npm desarrollado en local

Cómo enlazar un proyecto con un package de npm desarrollado en local

Voy a dejar aquí la respuesta a un tema que me parece útil sobre npm. La situación es la siguiente:

Tengo un package de Node con varias utilidades genéricas. Ese package está desarrollado en local pero que todavía no está subido a npm.

De momento ese package se llama @dile/lib.

Ahora quiero usar el package @dile/lib, desarrollado en local, en otro proyecto que estoy haciendo también en el mismo ordenador.

La idea es poder usar @dile/lib con el código que vengo desarrollando en local y que no he subido a npm todavía.

Respuestas

Para usar @dile/lib en otro proyecto sin necesidad de subirlo a npm es posible usar la utilidad de symlink local que nos ofrece npm con el comando npm link.

Esta utilidad permita crear un enlace simbólico global, permitiéndote modificar @dile/lib y ver los cambios reflejados en el otro proyecto sin necesidad de volver a instalarlo.

Desde la carpeta raíz del proyecto que quieres enlazar (en mi caso la carpeta donde tengo el package.json del proyecto @dile/lib se debe lanzar este comando:

npm link

Ese comando crea un enlace simbólico global para el package @dile/lib (o cualquier otro package que necesites poner en local).

Luego, desde la carpeta del otro proyecto donde quieres usar @dile/lib, debes ejecutar el comando siguiente:

npm link @dile/lib

Esto enlazará @dile/lib que tienes en local al node_modules del proyecto. Gracias a ello no necesitas ni siquiera instalar la dependencia en ese proyecto (no pones nada en el dependencies del package.json) y el proyecto podrá usar el package enlazado como si estuviera instalado.

import { DileAppLoading } from '@dile/lib';

Cómo desvincular si ya no necesitas ese enlace

En el proyecto que usabas @dile/lib tienes que lanzar este comando:

npm unlink @dile/lib

En el proyecto donde tienes el package @dile/lib tienes que lanzar este comando:

npm rm --global @dile/lib

Volver a vincular

He visto que a veces se pierden los enlaces de npm locales, por ejemplo si haces un npm install en el proyecto que usaba el enlace.

En ese caso sería simplemente volver a correr el comando de enlazado:

npm link @dile/lib

Si cambias la versión de node con nvm también tienes que hacer el npm link de nuevo para poder usar en package en local.

Miguel Angel
3425 151 219 17