Dit is de opdracht npm-install die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
npm-installatie - Installeer een pakket
KORTE INHOUD
npm install (zonder argumenten, in pakketmap)
npm installeren [<@scope>/]
npm installeren [<@scope>/] @
npm installeren [<@scope>/] @
npm installeren [<@scope>/] @
npm installeren
npm installeren
npm installeren
alias: npm i
veelvoorkomende opties: [-S|--save|-D|--save-dev|-O|--save-optioneel] [-E|--save-exact] [--dry-run]
PRODUCTBESCHRIJVING
Deze opdracht installeert een pakket en alle pakketten waarvan het afhankelijk is. Als het pakket een
Shrinkwrap-bestand, wordt de installatie van afhankelijkheden daardoor aangestuurd. Zie npm-help
krimpfolie.
A pakket is:
· a) een map met een programma beschreven door een npm help 5 package.json filet
· b) een gzipped tarball met daarin (a)
· c) een url die naar (b) leidt
· d) een @ dat is gepubliceerd in het register (zie npm help 7 npm-register)
met (c)
· e) een @ dat wijst op (d)
· f) een die een "laatste" tag heeft die voldoet aan (e)
· g) een <git vanop url> die oplost in (a)
Zelfs als u uw pakket nooit publiceert, kunt u nog steeds veel voordelen halen uit het gebruik van npm
als je alleen een node-programma (a) wilt schrijven, en misschien als je dat ook wilt kunnen
installeer het eenvoudig ergens anders nadat u het in een tarball (b) hebt verpakt.
· NPM installeren (in pakketmap, geen argumenten):
Installeer de afhankelijkheden in de lokale map node_modules.
In globale modus (dwz met -g or --globaal toegevoegd aan de opdracht), installeert het de
huidige pakketcontext (dwz de huidige werkdirectory) als een globaal pakket.
Standaard NPM installeren zal alle modules installeren die als afhankelijkheden in npm help worden vermeld
package.json.
Met de --productie vlag (of wanneer de NODE_ENV omgevingsvariabele is ingesteld op
productie), zal npm geen modules installeren die worden vermeld in devAfhankelijkheden.
· NPM installeren :
Installeer een pakket dat zich in een map op het bestandssysteem bevindt.
· NPM installeren <tarball bestand>:
Installeer een pakket dat op het bestandssysteem staat. Let op: als je alleen een wilt linken
dev map in uw npm root, u kunt dit gemakkelijker doen door gebruik te maken van NPM link.
Voorbeeld:
npm install ./pakket.tgz
· NPM installeren <tarball url>:
Haal de tarball-URL op en installeer deze. Om onderscheid te maken tussen deze en
andere opties, moet het argument beginnen met "http://" of "https://"
Voorbeeld:
npm installeren https://github.com/indexzero/forever/tarball/v0.5.6
· NPM installeren [<@scope>/] [-S|--save|-D|--save-dev|-O|--save-optioneel]:
Doe een @ installeren, waar? is de "tag"-configuratie. (Zie npm help 7
npm-config.)
In de meeste gevallen zal dit de nieuwste versie van de module installeren die op npm is gepubliceerd.
Voorbeeld:
npm installeer sax
NPM installeren duurt 3 exclusieve, optionele vlaggen die de pakketversie opslaan of bijwerken in
uw hoofdpakket.json:
· -S, --opslaan: Pakket verschijnt in uw afhankelijkheden.
· -NS, --opslaan-ontwikkelaar: Pakket verschijnt in uw devAfhankelijkheden.
· -O, --opslaan-optioneel: Pakket verschijnt in uw optionele afhankelijkheden.
Wanneer u een van de bovenstaande opties gebruikt om afhankelijkheden in uw package.json op te slaan, is er een:
extra, optionele vlag:
· -IS, --bewaar-exact: Opgeslagen afhankelijkheden worden eerder geconfigureerd met een exacte versie
dan het gebruik van de standaardoperator voor het semver-bereik van npm.
Verder, als u een npm-shrinkwrap.json dan wordt het ook bijgewerkt.
is optioneel. Het pakket wordt gedownload uit het register dat is gekoppeld aan de
gespecificeerd bereik. Als er geen register is gekoppeld aan het opgegeven bereik, is het standaardregister:
verondersteld. Zie npm help 7 npm-bereik.
Opmerking: als u het @-teken niet in uw scopenaam opneemt, zal npm dit interpreteren als een
GitHub-repository in plaats daarvan, zie hieronder. Scopes-namen moeten ook worden gevolgd door een schuine streep.
Voorbeelden:
npm installeer sax --save
npm installeer githubnaam/reponaam
npm installeer @myorg/privatepackage
npm installeer node-tap --save-dev
npm install dtrace-provider --save-optioneel
npm install readable-stream --save --save-exact
Note: Als er een bestand of map is met de naam in de huidige werkdirectory, dan is het
zal proberen dat te installeren, en alleen proberen het pakket op naam op te halen als het niet geldig is.
· NPM installeren [<@scope>/] @:
Installeer de versie van het pakket waarnaar wordt verwezen door de opgegeven tag. Als de tag
niet bestaat in de registergegevens voor dat pakket, dan zal dit mislukken.
Voorbeeld:
npm installeer sax@latest
npm install @myorg/mypackage@latest
· NPM installeren [<@scope>/] @:
Installeer de opgegeven versie van het pakket. Dit zal mislukken als de versie dat niet heeft gedaan
gepubliceerd in het register.
Voorbeeld:
npm installeren [e-mail beveiligd]
npm installeren @myorg/[e-mail beveiligd]
· NPM installeren [<@scope>/] @ bereik>:
Installeer een versie van het pakket die overeenkomt met het opgegeven versiebereik. Dit zal
volg dezelfde regels voor het oplossen van afhankelijkheden beschreven in npm help 5. package.json.
Merk op dat de meeste versiebereiken tussen aanhalingstekens moeten worden geplaatst, zodat uw shell het zal behandelen
als een enkel argument.
Voorbeeld:
npm installeer sax@">=0.1.0 <0.2.0"
npm install @myorg/privatepackage@">=0.1.0 <0.2.0"
· NPM installeren <git vanop url>:
Installeert het pakket van de gehoste git-provider en kloont het met git. Eerst probeert het
via de https (git met github) en als dat niet lukt, via ssh.
://[ [: ]@] [: ][:][/] [# ]
is een van git, git+ssh, git+httpof git+https Als Nee is
gespecificeerd, dan meester is gebruikt.
De volgende git-omgevingsvariabelen worden herkend door npm en worden toegevoegd aan de
omgeving bij het uitvoeren van git:
· GIT_ASKPASS
· GIT_PROXY_COMMAND
· GIT_SSH
· GIT_SSH_COMMAND
· GIT_SSL_CAINFO
· GIT_SSL_NO_VERIFY
Zie de git man-pagina voor details.
Voorbeelden:
npm installeer git+ssh://[e-mail beveiligd]:npm/npm.git#v1.0.27
npm installeer git+https://[e-mail beveiligd]/npm/npm.git
npm installeer git://github.com/npm/npm.git#v1.0.27
GIT_SSH_COMMAND=´ssh -i ~/.ssh/custom_ident´ npm installeer git+ssh://[e-mail beveiligd]:npm/npm.git
· NPM installeren / [# ]:
· NPM installeren github: / [# ]:
Installeer het pakket op https://github.com/githubname/githubrepo door te proberen te klonen
het gebruikt git.
Als u geen specificeert plegen-achtig harte meester gebruikt.
Voorbeelden:
npm installeer mijngithubuser/mijnproject
npm installeer github:mygithubuser/mijnproject
· NPM installeren kern:[ /] [# ]:
Installeer het pakket op https://gist.github.com/gistID door te proberen het te klonen met
git. De GitHub-gebruikersnaam die aan de essentie is gekoppeld, is optioneel en wordt niet opgeslagen in
package.json if -S or --opslaan is gebruikt.
Als u geen specificeert plegen-achtig harte meester gebruikt.
Voorbeeld:
npm install kern:101a11beef
· NPM installeren bitbucket: / [# ]:
Installeer het pakket op https://bitbucket.org/bitbucketname/bitbucketrepo door te proberen
om het te klonen met behulp van git.
Als u geen specificeert plegen-achtig harte meester gebruikt.
Voorbeeld:
npm installeer bitbucket:mybitbucketuser/mijnproject
· NPM installeren gitlab: / [# ]:
Installeer het pakket op https://gitlab.com/gitlabname/gitlabrepo door te proberen te klonen
het gebruikt git.
Als u geen specificeert plegen-achtig harte meester gebruikt.
Voorbeeld:
npm installeer gitlab:mygitlabuser/mijnproject
U kunt meerdere argumenten combineren, en zelfs meerdere soorten argumenten. Bijvoorbeeld:
npm install sax@">=0.1.0 <0.2.0" bench supervisor
De --label argument is van toepassing op alle opgegeven installatiedoelen. Als een tag met de
gegeven naam bestaat, heeft de getagde versie de voorkeur boven nieuwere versies.
De --oefening argument zal op de gebruikelijke manier rapporteren wat de installatie zou hebben gedaan
zonder echt iets te installeren.
De -f or --kracht argument dwingt npm om externe bronnen op te halen, zelfs als een lokale kopie
bestaat op schijf.
npm installeer sax --force
De -g or --globaal argument zal ervoor zorgen dat npm het pakket globaal installeert in plaats van
lokaal. Zie npm help 5 npm-mappen.
De --globale stijl argument zal ervoor zorgen dat npm het pakket installeert in uw lokale
node_modules map met dezelfde lay-out die het gebruikt met de global node_modules map. Enkel en alleen
je directe afhankelijkheden zullen zichtbaar worden in node_modules en alles waar ze van afhankelijk zijn, zal zijn
platgedrukt in hun node_modules mappen. Dit zal uiteraard enige ontdubbeling elimineren.
De --legacy-bundeling argument zal ervoor zorgen dat npm het pakket zo installeert dat versies van
npm voor 1.4, zoals degene die bij node 0.8 wordt geleverd, kan het pakket installeren. Dit
elimineert alle automatische ontdubbeling.
De --koppeling argument zal ervoor zorgen dat npm in sommige gevallen globale installaties koppelt aan de lokale ruimte
gevallen.
De --geen-bin-links argument zal voorkomen dat npm symlinks maakt voor binaire bestanden die de
pakket kan bevatten.
De --geen-optioneel argument voorkomt dat optionele afhankelijkheden worden geïnstalleerd.
De --geen krimpfolie argument, dat een beschikbaar shrinkwrap-bestand negeert en de . gebruikt
package.json in plaats daarvan.
De --nodedir=/pad/naar/knooppunt/bron argument stelt npm in staat de broncode van het knooppunt te vinden, dus
dat npm native modules kan compileren.
De --only={product[uction]|dev[elopment]} argument zal leiden tot een van beide alleen devAfhankelijkheden or
alleen niet-devAfhankelijkheden te installeren, ongeacht de NODE_ENV.
Zie npm help 7 npm-config. Veel van de configuratieparameters hebben enig effect op:
installatie, want dat is het meeste van wat npm doet.
ALGORITME
Om een pakket te installeren, gebruikt npm het volgende algoritme:
laad de bestaande node_modules boom van schijf
kloon de boom
haal de package.json en diverse metadata op en voeg deze toe aan de kloon
loop de kloon en voeg eventuele ontbrekende afhankelijkheden toe
afhankelijkheden worden zo dicht mogelijk bovenaan toegevoegd
zonder andere modules te breken
vergelijk de originele boom met de gekloonde boom en maak een lijst van
acties die moeten worden ondernomen om de ene naar de andere te converteren
voer alle acties uit, diepste eerst
soorten acties zijn installeren, bijwerken, verwijderen en verplaatsen
Voor dit pakket{dep} structuur: ABC}, B{C}, CD}, dit algoritme produceert:
A
+-- B
+-- C
+-- D
Dat wil zeggen, aan de afhankelijkheid van B naar C wordt voldaan door het feit dat A al C heeft veroorzaakt
op een hoger niveau geïnstalleerd. D is nog steeds op het hoogste niveau geïnstalleerd omdat er niets is
daarmee in strijd.
Voor ABC}, B{C,D@1}, C{D@2}, dit algoritme produceert:
A
+-- B
+-- C
`--D@2
+-- D@1
Omdat B's D@1 op het hoogste niveau wordt geïnstalleerd, moet C nu D@2 privé installeren voor
zelf.
Zie npm help 5 mappen voor een meer gedetailleerde beschrijving van de specifieke mapstructuren
die npm creëert.
Beperkingen of npm's Install Algoritme
Er zijn enkele zeer zeldzame en pathologische randgevallen waarbij een cyclus ervoor kan zorgen dat npm probeert om
installeer een oneindige boom met pakketten. Hier is het eenvoudigste geval:
A -> B -> A´ -> B´ -> A -> B -> A´ -> B´ -> A -> ...
WAAR A is een versie van een pakket, en EEN is een andere versie van hetzelfde pakket.
Omdat B hangt af van een andere versie van A dan degene die al in de boom zit, het
moet een aparte kopie installeren. Hetzelfde geldt voor EEN, die moet installeren B. Omdat B
hangt af van de originele versie van A, die is opgeheven, valt de cyclus in
oneindige achteruitgang.
Om deze situatie te voorkomen, weigert npm flat-out enige naam@versie dat is al
overal aanwezig in de boomstructuur van voorouders van pakketmappen. Een meer correcte, maar meer
complex, zou de oplossing zijn om de bestaande versie te symboliseren naar de nieuwe locatie. Als dit
ooit een echte use-case beïnvloedt, zal het worden onderzocht.
Gebruik npm-install online met onworks.net-services