Articles

Vad är npm?

2011-08-26

npm är två saker: först och främst är det ett onlineförvar för publicering av öppen källkodsnod.js-projekt; för det andra är det ett kommandoradsverktyg för att interagera med nämnda arkiv som hjälper till med paketinstallation, versionshantering och beroendehantering. En uppsjö av Nod.JS-bibliotek och applikationer publiceras på npm, och många fler läggs till varje dag. Dessa applikationer kan sökas på https://www.npmjs.com/. När du har ett paket du vill installera kan det installeras med ett enda kommandoradskommando.

låt oss säga att du är hårt på jobbet en dag och utvecklar nästa fantastiska applikation. Du stöter på ett problem, och du bestämmer dig för att det är dags att använda det coola biblioteket du fortsätter att höra om – låt oss använda Caolan McMahons async som ett exempel. Tack och lov, npmär mycket enkel att använda: du behöver bara köra npm install async, och den angivna modulen kommer att installeras i den aktuella katalogen under ./node_modules/. När du har installerat i mappen node_modules kan du använda require() på dem precis som de var inbyggda.

låt oss titta på ett exempel på en global installation – låt oss säga coffee-script. Npm-kommandot är enkelt: npm install coffee-script -g. Detta installerar vanligtvis programmet och lägger en symlänk till den i /usr/local/bin/. Detta gör att du kan köra programmet från konsolen precis som alla andra CLI-verktyg. I det här fallet kan du nu använda kaffeskriptet REPL genom att köra coffee.

en annan viktig användning för npm är beroendehantering. När du har ett nodprojekt med ett paket.JSON-fil, du kan köra npm install från projektroten och npm installerar alla beroenden som anges i paketet.json. Detta gör att du installerar en nod.js projekt från en git repo mycket lättare! Till exempel vows, en nod.JS testing framework, kan installeras från git, och dess enda beroende, eyes, kan hanteras automatiskt:

exempel:

git clone https://github.com/cloudhead/vows.gitcd vowsnpm install

När du har kört dessa kommandon ser du ennode_modules mapp som innehåller alla projektberoende som anges i paketet.json.