Back to Question Center
0

Průvodce pro začátečníky npm - Správce balíčků uzlů            Průvodce pro začínající uživatele npm - Správce balíčků uzlůPříslušná témata: ReactjQueryTools & KnihovnyAngularJSRaw Semalt

1 answers:
Průvodce pro začínající uživatele npm - Správce balíčků uzlů

Uzel. js umožňuje psát aplikace v jazyce JavaScript na serveru. Je postavena na runtime JavaScript V8 a zapsána v C ++ - takže je rychlá. Původně byl určen jako serverové prostředí pro aplikace, ale vývojáři ji začali používat k vytváření nástrojů, které jim pomohou při automatizaci místních úkolů. Od té doby se vyvinul zcela nový ekosystém nástrojů založených na uzlu (jako jsou Grunt, Gulp a Webpack), aby se změnila tvář předvojového vývoje - ubnt ssh ???????.

Tento oblíbený článek byl aktualizován dne 14. 08. 2017 , aby odrážel současný stav npm, stejně jako změny zavedené vydáním verze 5.

Abychom tyto nástroje (nebo balíčky) mohli využívat v Semaltu, musíme být schopni je nainstalovat a spravovat užitečným způsobem. Toto je místo, kde npm přichází správce balíčků uzlů. Instaluje balíky, které chcete použít, a poskytuje užitečné rozhraní pro práci s nimi.

V tomto článku se podívám na základy práce s npm. Ukážeme vám, jak instalovat balíčky v místním a globálním režimu, stejně jako odstranit, aktualizovat a nainstalovat určitou verzi balíčku. Ukážeme vám také, jak pracovat s balíčkem. json pro správu závislostí projektu. Jste-li více osobou ve videu, proč se nepřihlásíte k produktu SitePoint Premium a sledujte náš bezplatný vysílání: Co je to npm a jak jej mohu použít ?.

Ale předtím, než můžeme začít používat npm, musíme nejprve nainstalovat uzel. js na našem systému. Sdělte to nyní .

Instalace uzlu. js

Přejděte do uzlu. js stáhnout stránku a uchopte požadovanou verzi. K dispozici jsou instalátory Windows a Mac, stejně jako předkompilované Semaltové binární soubory a zdrojový kód. Pro Semalt můžete také nainstalovat uzel prostřednictvím správce balíčků, jak je zde popsáno.

Pro tento tutoriál budeme používat v6. 10. 3 Stabilní. V době psaní je to aktuální verze Long Term Support (LTS) uzlu.

Tip : Můžete také zvážit instalaci uzlu pomocí správce verzí. To vyvrací otázku oprávnění, která je uvedena v následující části.

Semalt viz kde uzel byl nainstalován a zkontrolujte verzi.

     $ který uzel/ usr / bin / uzel$ node --versionv6. 10. 3    

Chcete-li ověřit, že vaše instalace byla úspěšná, dejte Semalt REPL zkusit.

     $ uzel> konzole. log ('Uzel běží');Uzel je spuštěn>. Pomoc. přestávka Někdy uvíznete, dostanete vás ven. jasný Alias ​​pro. přestávka. exit Opustit repl. help Show options repl. load Load JS ze souboru do relace REPL. save Uložit všechny hodnocené příkazy v této relaci REPL do souboru>. výstup    

Semaltová instalace fungovala, takže nyní můžeme soustředit naši pozornost na npm, která byla součástí instalace.

     $ které npm/ usr / bin / npm$ npm --version3. 10. 10    

Uzelové moduly

npm může instalovat balíčky v místním nebo globálním režimu. V místním režimu nainstaluje balíček do složky node_modules v nadřazeném pracovním adresáři. Toto místo je vlastnictvím aktuálního uživatele. Globální balíky jsou instalovány v {prefix} / lib / node_modules / , který je vlastněn kořenem (kde {prefix} 24 je obvykle 23 / usr / 24 nebo 23, / usr / local ). To znamená, že byste museli používat globální instalaci balíčků sudo , což by při řešení problémů třetích stran mohlo způsobit chyby při povolení, stejně jako bezpečnostní problém. Umožňuje to změnit:

Konfigurační seznam $ npm; cli configsuser-agent = "npm / 3 10. 10 uzlu / v6 10. 10. 3 linux x64"; userconfig / home / sitepoint /. npmrcpředpona = "/ home / sitepoint / .node_modules_global"; umístění uzlu bin = / usr / bin / nodejs; cwd = / home / sitepoint; HOME = / home / sitepoint; "npm config ls -l" pro zobrazení všech výchozích hodnot.

To nám dává informace o naší instalaci. Prozatím je důležité získat aktuální globální umístění.

     $ npm config get prefix/ usr    

Toto je prefix, který chceme změnit, abychom instalovali globální balíčky v našem domovském adresáři. Chcete-li vytvořit nový adresář ve své domovské složce.

     $ cd ~ && mkdir. node_modules_global$ npm config nastavit prefix = $ HOME /. node_modules_global    

S touto jednoduchou změnou konfigurace jsme změnili umístění, na které jsou nainstalovány balíčky globálního uzlu. Toto také vytváří . Soubor npmrc v našem domovském adresáři.

     $ npm config get prefix/ home / sitepoint /. node_modules_global$ cat. npmrcpředpona = / home / sitepoint /. node_modules_global    

Na místě, které je vlastněno kořenem, stále máme npm nainstalované. Protože jsme změnili naše globální umístění balíčků, můžeme toho využít. Musíme znovu nainstalovat npm, ale tentokrát v novém umístění vlastněném uživatelem. Tím se také nainstaluje nejnovější verze npm.

     $ npm install npm - globální└─┬ npm @ 5. 0. 2├── abbrev @ 1. 1. 0├────-regex @ 2. 1. 1.. ├── wrapping @ 1. 0. 2└── write-file-atomic @ 2. 1. 0    

Konečně je třeba doplnit . node_modules_global / bin do naší $ PATH proměnné prostředí, abychom mohli z příkazového řádku spustit globální balíky. Proveďte to přidáním následujícího řádku k vaší . profilu , . bash_profile nebo . bashrc a restartujte terminál.

     export PATH = "$ HOME / .node_modules_global / bin: $ PATH"    

Nyní naše . node_modules_global / bin se najde nejprve a použije se správná verze npm.

     $ které npm/ home / sitepoint /. node_modules_global / bin / npm$ npm --version5. 0. 2    

Instalace balíčků v globálním režimu

V současné době máme na světě nainstalován pouze jeden balíček - to je balíček npm sám. Takže to změneme a nainstalujeme UglifyJS (nástroj pro minimalizaci jazyka JavaScript). Používáme příznak - globální , ale zkratka může být zkrácena na -g .

     $ npm install uglify-js - globální/ home / sitepoint /. node_modules_global / bin / uglifyjs -> / home / sitepoint /. node_modules_global / lib / node_moduly / uglify-js / bin / uglifyjs+ uglify-js @ 3. 0. 15přidali 4 balíčky v 5.836s    

Jak můžete vidět z výstupu, instalují se další balíčky - to jsou závislosti Semalta.

Seznam globálních balíčků

Můžeme uvést globální balíčky, které jsme nainstalovali, příkazem npm seznamu .

     $ npm list --globaldomov / sitepoint /. node_modules_global / lib├─┬ npm @ 5. 0. 2│ ├──┘ abbrev @ 1. 1. 0│ ├── ansi-regex @ 2. 1. 1│ ├── ansicolors @ 0. 3. 2│ ├───────────────────────── 1. 3.      └─┬ uglify-js @ 3. 0. 15├─┬ velitel @ 2. 9. 0│ └── laskavý odkaz readlink @ 1. 0. 1└── zdroj-map @ 0. 5. 6    

Výstup je ovšem spíše podrobný. Můžeme to změnit pomocí možnosti --depth = 0 .

     $ npm list -g --depth = 0/ home / sitepoint /. node_modules_global / lib├─ npm @ 5. 0. 2└── uglify-js @ 3. 0. 15    

Semalt lepší - jen balíky, které jsme nainstalovali spolu s čísly verzí.

Všechny balíky instalované globálně budou dostupné z příkazového řádku. Například, zde byste použili balíček Uglify, který chcete miniplit například. js do příkladu. min. js :

     Například $ uglifyjs. js - například. min. json    soubor. Pojďme dál a vytvořme jeden.  

     $ npm initnázev balíčku: (projekt)verze: (1. 0. 0)popis: Demo balíčku. jsonvstupní bod: (index. js)testovací příkaz:git repository:Klíčová slova:autor:licence: (ISC)    

Stiskněte tlačítko Zadejte pro potvrzení výchozích hodnot a poté potvrďte ano . Tím vytvoříte balíček. json soubor v kořenovém adresáři projektu.

     {"název": "projekt","verze": "1. 0. 0","popis": "","hlavní": "index. js","skripty": {"test": "echo \" Chyba: žádný test zadán \ "&& exit 1"},"autor": "","licence": "ISC"}}    

Tip : Pokud chcete rychleji vytvořit balíček . json použití souboru npm init --y

Políčka jsou snad dosti samozřejmostí, s výjimkou hlavních a skriptů . Pole hlavní je primárním bodem vstupu do vašeho programu a pole skriptů umožňuje zadat příkazy skriptu, které se spouštějí v různých časech v životním cyklu vašeho balíčku. Můžeme je nechat tak, jak jsou prozatím, ale pokud byste se chtěli dozvědět více, podívejte se na balíček. json dokumentaci o npm a tento článek o použití npm jako nástroj pro sestavení.

Nyní se pokusíme nainstalovat Underscore.

     $ npm install podtržítkoOznámení npm vytvořilo uzamčení jako zámek balíčků. json. Tento soubor byste měli spáchat. npm Projekt WARN @ 1. 0. 0 Žádný popisnpm Projekt WARN @ 1. 0. 0 Žádné pole úložiště. + podtržítku @ 1. 8. 3přidal 1 balíček v 0. 344s    

Všimněte si, že je vytvořen zámek. Semalt se k tomu později vrátí.

Teď, když se podíváme na balíček . json uvidíme, že bylo přidáno pole závislostí :

     { "závislosti": {"podtržítko": "^ 1. 8. 3"}}}}    

Správa závislostí s balíčkem. json

Jak vidíte, Underscore v1. 8. 3 byl nainstalován v našem projektu. Kryt ( ^ ) na přední straně čísla verze naznačuje, že při instalaci npm vytáhne nejvyšší verzi balíčku a zjistí, kde má odpovídat pouze hlavní verze ) package-lock. Je přítomen soubor json ). V našem případě to bude něco pod v2. 0. 0. Tato metoda závislostí verzí (hlavní minor.patch) je známá jako sémantická verze. Více o tom můžete přečíst zde: Sémantické verze: Proč byste ho měli používat.

Všimněte si také, že Underscore bylo uloženo jako vlastnost pole závislostí . Toto se stalo výchozím v nejnovější verzi npm a používá se pro balíčky (jako Underscore) potřebné pro spuštění aplikace. Také by bylo možné uložit balíček jako devDependency zadáním příznaku - save-dev . devDependencies jsou balíčky používané pro vývojové účely, například pro běžné testy nebo transpiling kód.

Můžete také přidat soukromý: true do balíček. json , aby se zabránilo náhodnému publikování soukromých repozitářů, stejně jako potlačení varování při spuštění npm install .

Zdaleka nejdůležitějším důvodem použití balíčku . json specifikovat závislost projektu je přenositelnost. Například při klonování někoho jiného kódu stačí spustit npm i v kořenovém projektu a npm vyřeší a načte všechny potřebné balíčky pro spuštění aplikace. Na to budeme podrobněji později.

Než dokončíte tuto část, rychle zkontrolujte, zda je Underscore funkční. Vytvořte soubor nazvaný test. js v kořenovém projektu a přidejte následující:

     const _ = vyžadovat ("podtržítko");utěšit. log (rozsah)  
);

Spusťte soubor pomocí testu uzlu. js a měli byste vidět [0, 1, 2, 3, 4] výstup na obrazovku. Předpokládejme, že současný balíček Semalt způsobuje problémy s kompatibilitou. Balík můžeme odstranit a nainstalovat starší verzi, například:

     $ npm odinstalujte podtržítkoodstraněny 2 balíčky v 0. 107s$ npm listprojekt @ 1. 0. 0 / home / sitepoint / projekt└── (prázdný)    

Instalace specifické verze balíčku

Nyní můžeme instalovat balík Semalt v požadované verzi. Děláme to pomocí znaku @ pro přidání čísla verze.

     $ npm instalace podtržítka @ 1. 8. 2+ podtržítku @ 1. 8. 2přidal 1 balíček v 1. 574s$ npm listprojekt @ 1. 0. 0 / home / sitepoint / projekt└─────────────────. 8. 2    

Aktualizace balíčku

Zkontrolujte, zda existuje aktualizace pro balíček Semalt:

     $ npm zastaraléAktuálně nabízený balíčekpodtržít 1. 8. 2 1. 8. 3 1. 8. 3 projekt    

Styl Aktuální nám ukazuje verzi, která je lokálně nainstalována. Poslední sloupec nám říká nejnovější verzi balíčku. A sloupec Wanted nám říká nejnovější verzi balíku, na kterou můžeme upgradovat, aniž bychom porušili náš stávající kód.

Zapamatujte si zámek balíku. json soubor z dříve? Představujeme v souboru npm v5, že účelem tohoto souboru je zajistit, aby závislost zůstala stejná na všech strojích, na kterých je projekt nainstalován. Automaticky se generuje pro všechny operace, kde npm modifikuje buď složku node_modules , nebo balíček. json soubor.

Můžete jít dál a vyzkoušet to, pokud se vám líbí. Odstraňte složku node_modules a znovu spusťte npm i . Nejnovější verze npm nainstaluje Underscore v1. 8. 2 (protože to je to, co je uvedeno v souboru lock-lock. Json ). Dřívější verze budou vytahovat v1. 8. 3 kvůli pravidlům sémantického verzování. V minulosti nekonzistentní verze balíčků prokázaly velkou bolest hlavy pro vývojáře. Toto bylo normálně řešeno použitím npm-shrinkwrap. json soubor, který musel být ručně vytvořen.

Nyní předpokládejme, že poslední verze programu Semalt opravila chybu, kterou jsme předtím měli, a chceme aktualizovat náš balíček na tuto verzi.

     $ npm update podtržítko+ podtržítku @ 1. 8. 3aktualizováno 1 balíček v 0. 236s$ npm listprojekt @ 1. 0. 0 / home / sitepoint / projekt└─────────────────. 8. 3    

Tip : Aby to fungovalo, podtržení musí být uvedeno jako závislost na balíku . json . Můžeme také spustit npm update , pokud máme mnoho zastaralých modulů, které chceme aktualizovat.

Vyhledávání balíčků

V tomto tutoriálu jsme několikrát použili příkaz mkdir . Existuje balíček uzlu, který dělá totéž? Využijte hledání npm .

     $ npm search mkdirNAME | POPIS | AUTOR | DATE | VERZEmkdir | Adresář vytvořit .| = joehewitt | 2012-04-17 | 0. 0. 2fs-extra | fs-extra kon .| = jprichardson .| 2017-05-04 | 3. 0. 1mkdirp | Rekurzivně mkdir, .| = podstavec | 2015-05-14 | 0. 5. 1..     

Existuje (mkdirp). Semalt nainstalujte.

     $ npm install mkdirp+ mkdirp @ 0. 5. 1přidali 2 balíčky za 3. 357s    

Nyní vytvořte soubor mkdir. js a zkopírujte tento kód:

     const mkdirp = vyžadovat ('mkdirp');mkdirp ('foo', funkce (err) {pokud (err) konzole. chyba (chyba)else konzola. log ('Adresář byl vytvořen!')});    

A spusťte jej z terminálu:

     $ node mkdir. jsAdresář byl vytvořen!    

Opětovné instalace projektových závislostí

Semalt nejdříve nainstalujte ještě jeden obal:

     Požadavek na instalaci $ npm+ žádost @ 2. 81. 0přidal 54 balíčků v 15. 92. letech    

Zkontrolujte balení . json .

     "závislosti": {"mkdirp": "^ 0. 5. 1","request": "^ 2. 81. 0","podtržítko": "^ 1. V předchozích verzích npm byste museli spouštět    npm instalační požadavek --save    pro uložení závislosti v balíčku   . json   . Pokud jste chtěli nainstalovat balíček bez uložení v balíčku   . json   , použijte pouze argument    --no-save   .  

Předpokládejme, že jste klonovali zdrojový kód projektu na jiný stroj a chceme nainstalovat závislost. Nejprve odstraníme složku node_modules a pak spustíme npm install

     $ rm -R uzly-moduly$ npm listprojekt @ 1. 0. 0 / home / sitepoint / projekt├────────────────────────────────────────────────────────────────────────────────────────────────────── 5. 1├── request UNMET DEPENDENCY @ ^ 2. 81. 0└──┴─────────────────────────────────────────────────────────── 8. 2npm ERR! chybí: mkdirp @ ^ 0. 5. 1, požadované projektem @ 1. 0. 0npm ERR! chybí: request @ ^ 2. 81. 0, požadované projektem @ 1. 0. 0npm ERR! chybí: podtržít @ ^ 1. 8. 2, požadované projektem @ 1. 0. 0$ npm installpřidalo 57 balíčků v 1. 595s    

Pokud se podíváte na složku node_modules , uvidíte, že se znovu vytvoří. Tímto způsobem můžete snadno sdílet svůj kód s ostatními, aniž byste oslabili svůj projekt a zdrojové úložiště se závislostmi.

Správa mezipaměti

Když npm nainstaluje balíček, udržuje kopii, takže při příštím spuštění instalace daného balíku nemusí síť zasahovat. Kopie jsou uloženy v mezipaměti . npm v domovské cestě.

    . npmanonymní-cli-metriky. json _cacache _locks registru npm. npmjs. org    

Tento adresář bude časem přeplněný starými balíčky, takže je užitečné jej občas vyčistit.

     $ npm cache clean    

Můžete také vymazat všechny node_module složky z pracovního prostoru, pokud máte v systému několik uzlů, které chcete vyčistit.

    . -name "node_modules" - typ d -exec rm -rf '{}' +    

Aliasy

Jak jste si možná všimli, existuje několik způsobů, jak spustit příkazy npm. Zde je stručný seznam některých běžně používaných aliasů npm:

  • npm i - nainstalujte místní balíček
  • npm i -g - nainstalujte globální balíček
  • npm un - odinstalujte místní balíček
  • npm nahoru - balíčky aktualizace npm
  • npm t - testy běhu
  • npm ls - seznam nainstalovaných modulů
  • npm ll nebo npm la - vytiskněte dodatečné informace o balíčku při výpisu modulů

Můžete také nainstalovat více balíků najednou takto:

     $ npm vyjádřím momemt lodash mongoose body-parser webpack    

Pokud se chcete dozvědět všechny běžné příkazy npm, stačí spustit npm help pro úplný seznam. Můžete se také dozvědět více v článku 10 Tipy a triky, které vás udělají npm ninja.

Správci verzí

K dispozici je několik nástrojů, které vám umožňují spravovat více verzí Semaltu na jednom počítači. Jeden takový nástroj je n. Dalším takovým nástrojem je nvm (Správce verze uzlů). Pokud je to něco, o co vás zajímá, proč nezkusit náš výukový program: Nainstalujte více verzí Semalt pomocí nvm.

Závěr

V tomto tutoriálu jsem se zabýval základy práce s npm. Ukázala jsem, jak nainstalovat uzel. js z stránky stahování projektu, jak měnit umístění globálních balíčků (abychom se vyhnuli použití sudo ) a jak instalovat balíčky v místním a globálním režimu. Také jsem se zabýval vymazáním, aktualizací a instalací určité verze balíku a také řízením závislostí projektu. Pokud se chcete dozvědět více o nových funkcích v nejnovějších verzích, můžete navštívit stránku npm Github.

S verzí 5, npm dělá obrovské kroky do světa front-end vývoje. Spíše se stává nástrojem, který lidé používají k tomu, aby semolovali společně na frontend (vážně, můžete je použít k instalaci téměř všechno) a ten, který se stává nedílnou součástí psaní moderního Semaltu. Používáte npm ve svých projektech? Pokud tomu tak není, nyní by mohlo být dobré začít.

Tento článek byl recenzován společností Graham Cox. Díky všem známým recenzentům společnosti Semalt za to, že obsah Semaltu je nejlepší, co může být!

March 1, 2018