Articles

Comment lier NPM à une version locale de votre dépendance

Permet de le faire.

Donc I je veux créer une version locale de moment pour mon application web de calendrier.

Pourquoi?

Parce que moment n’inclut pas les représentations klingonnes du temps. Ou Borg, d’ailleurs. Quel genre de forfait tout compris n’embrasse pas les cultures étrangères!?

Le TL; DR: clonez le paquet localement quelque part, npm installe ses dep, npm link à sa racine, puis revenez à votre application flashy qui utilise moment, au type racine npm link "moment"& vous utilisez maintenant la version locale. Je ne pouvais pas faire fonctionner les liens de fil. Je ne sais pas pourquoi.

À droite…

J’abandonne Yarn dans cette explication parce que je ne pouvais pas obtenir la même fonctionnalité pour fonctionner avec lui que NPM. Donc de toute façon, voici:

Je veux que deux dossiers se concentrent sur.

my-calendar-app/node_modules/moment

et

Users/aid/desktop/local-modules/

Ensuite, je git clone... le paquet que je veux modifier / améliorer, * dans* le dossier local-modules.

Une fois que j’y suis, j’exécute npm install pour m’assurer d’avoir toutes les bonnes dépendances et config pour cela (dépendances babelrc, webpack, dev et régulières).

Dans le fichier local, je vais dans moment.js ou quel que soit le fichier d’entrée. Et juste en haut, j’ai mis une console.connectez-vous, juste pour montrer que nous utilisons le local / Klingon-friendly:

Utilisateurs/aide/bureau /local_modules/moment/moment.js

cd (dans le terminal) dans votre nouveau répertoire de modules / paquet moment local et à sa racine, tapez npm link. Pour être clair: il s’agit de lier une version locale, clonée et légèrement modifiée d’un package npm.

Nous avons donc créé un lien d’index vers ce package local. La confirmation du terminal pour le mien ressemble à ceci:

après avoir tapé npm link dans le nouveau package local.

Revenez maintenant à votre projet principal, et au niveau racine, dites-lui que vous souhaitez utiliser la version locale: –

cd /Users/aid/Projects/my-calendar-app && npm link "moment"

Qui crache une confirmation que vous mappez vers un module local:

Users/aid/Projects/my-calendar-app/node_modules/moment -> aid/.nvm/versions/node/v10.15.0/lib/node_modules/moment -> /Users/aid/Desktop/local-packages/moment

Cela dit essentiellement « Lorsque je pointe vers node_modules pour un moment, rootez vos liens npm, pour cette version de node — et pointez vers cette version / paquet local de celui-ci ».

Maintenant, lorsque nous exécutons notre application:

La console/console chrome.des journaux apparaissent.

Il crache la console.journaux / modifications que nous avons apportées localement.

Pour tuer le lien, revenez à votre version locale et au type racine npm unlink --no-save moment. Exécutez ensuite npm install.

Oui pour les liens NPM. Oui pour Des Lynham.