Szinopszis
npm link (a package dir-ben)npm link <pkg>alias:
Leírás
A csomagok összekapcsolása kétlépcsős folyamat.
Először a npm link
egy csomag mappában létrehoz egy symlinket a globális mappában{prefix}/lib/node_modules/<package>
, amely arra a csomagra hivatkozik, ahol a npmlink
parancsot végrehajtották. A csomagban lévő összes tárolót is összekapcsolja a {prefix}/bin/{name}
-vel.Vegyük észre, hogy a npm link
a globális előtagot használja (értékét lásd a npm prefix -g
-ben).
Ezután, egy másik helyen, a npm link package-name
aszimbolikus linket hoz létre a globálisan telepített package-name
-ból a node_modules/
-hez az aktuális mappában.
Megjegyezzük, hogy a package-name
a package.json
-ből származik, nem pedig a könyvtárnévből.
A csomag neve elé opcionálisan egy hatókör előtagot is tehetünk. Lásd scope
.A hatókör előtt egy @ szimbólumnak kell állnia, és egy perjelnek kell követnie.
Az npm publish
tarballok készítésekor a linkelt csomagok a szimbolikus linkek feloldásával “pillanatképet” kapnak az aktuális állapotukról.
Ez praktikus a saját cuccok telepítésénél, hogy folyamatosan újrakészítés nélkül dolgozhass rajta és tesztelhesd.
Példa:
cd ~/projects/node-redis # bemegy a csomagkönyvtárbanpm link # létrehozza a globális linketcd ~/projects/node-bloggy # bemegy egy másik csomagkönyvtárba.npm link redis # link-installálja a csomagot
Most, a ~/projects/node-redis-ben történt bármilyen változás tükröződni fog~/projects/node-bloggy/node_modules/node-redis/-ben. Vegye figyelembe, hogy a hivatkozásnak a csomag nevére kell vonatkoznia, nem pedig a csomaghoz tartozó könyvtár nevére.
A két lépést egyben is lerövidítheti. Például a fenti felhasználási eset rövidebb módon történő elvégzéséhez:
cd ~/projects/node-bloggy # menj a fő projekted dir-jébenpm link ../node-redis # linkeld a függőséged dir-jébe
A második sor a következővel egyenértékű:
(cd ../node-redis; npm link)npm link redis
Ez először létrehoz egy globális linket, majd a globális telepítési célt a projekted node_modules
mappájába linkeli.
Megjegyezzük, hogy ebben az esetben a node-redis
könyvtárnévre hivatkozik, nem pedig a redis
csomagnévre.
Ha a linkelt csomagja hatókörrel rendelkezik (lásd scope
), akkor a link parancsának tartalmaznia kell ezt a hatókört, pl.
npm link @myorg/privatepackage
Lásd még
- npm developers
- package.json
- npm install
- npm folders
- npm config
- npmrc
.