Synopsis
npm link (w dir pakietów)npm link <pkg>alias: npm ln
Opis
Łączenie pakietów jest procesem dwuetapowym.
Po pierwsze, npm link w folderze pakietu utworzy symlink w folderze globalnym{prefix}/lib/node_modules/<package>, który łączy się z pakietem, w którym wykonano polecenie npmlink. Połączy również wszelkie binarki w pakiecie z {prefix}/bin/{name}.Zauważ, że npm link używa prefiksu globalnego (zobacz npm prefix -g, aby poznać jego wartość).
Następnie, w jakiejś innej lokalizacji, npm link package-name utworzy asymboliczne łącze z globalnie zainstalowanego package-name do node_modules/ bieżącego folderu.
Zauważ, że package-name jest pobierane z package.json,a nie z nazwy katalogu.
Nazwa pakietu może być opcjonalnie poprzedzona zakresem. Zobacz scope.Zakres musi być poprzedzony symbolem @ i następującym po nim ukośnikiem.
Podczas tworzenia tarballi dla npm publish, połączone pakiety są „migawkowane” do ich aktualnego stanu przez rozwiązywanie dowiązań symbolicznych.
To jest przydatne do instalowania własnych rzeczy, aby można było nad nimi pracować i testować je bez konieczności ciągłego przebudowywania.
Na przykład:
cd ~/projects/node-redis # przejdź do katalogu z pakietaminpm link # tworzy globalny linkcd ~/projects/node-bloggy # przejdź do innego katalogu z pakietami.npm link redis # link-install the package
Teraz, wszelkie zmiany w ~/projects/node-redis będą odzwierciedlone w~/projects/node-bloggy/node_modules/node-redis/. Zauważ, że odnośnik powinien być do nazwy pakietu, a nie do nazwy katalogu tego pakietu.
Możesz również skrócić te dwa kroki w jednym. Na przykład, aby wykonać powyższy przypadek użycia w krótszy sposób:
cd ~/projects/node-bloggy # przejdź do dir swojego głównego projektunpm link ../node-redis # połącz dir swojej zależności
Druga linia jest odpowiednikiem robienia:
(cd ../node-redis; npm link)npm link redis
To znaczy, że najpierw tworzy globalny link, a następnie łączy cel globalnej instalacji do folderu node_modules twojego projektu.
Zauważ, że w tym przypadku odnosisz się do nazwy katalogu, node-redis, a nie do nazwy pakietu redis.
Jeśli twój połączony pakiet ma zakres (zobacz scope), twoje polecenie link musi zawierać ten zakres, np.
npm link @myorg/privatepackage
Zobacz także
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc
.