Comment lier NPM à une version locale de votre dépendance
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:
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:
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:
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.