brambo schreef :
NPM is de basis van de hele reeks van SignalK applicaties. Dus ook eenvoudig opwaarderen. Maar het hoeft allemaal niet.
SignalK is inderdaad beschikbaar als NPM-packages. Dat wil overigens niet zeggen dat het
upgraden van npm nodig is om SignalK te kunnen upgraden.
Het zit ongeveer zo:
Node.js is een runtime-omgeving waarmee code geschreven in JavaScript uitgevoerd kan worden op een server. JavaScript is oorspronkelijk ontwikkeld voor in de browser, en Node.js gebruikt dan ook het JavaScript-gedeelte van de Chrome-browser, de V8-engine. Het voegt daar een aantal eigen modules aan toe die in de browser niet nuttig zijn, zoals toegang tot het bestandssysteem. Elk jaar komt er een nieuwe stabiele versie uit, de laatste is 12.x
De
NPM-repository (op
npmjs.com) is een grote verzameling van JavaScript-software die je kan gebruiken in Node.js en in de browser. Net als de .deb-packages die je met apt-get kan toevoegen in je Linux-systeem kunnen NPM-packages in de repository afhankelijk zijn van andere packages.
signal-server is een van die packages, en is afhankelijk van 54 andere packages.
Die 54 packages hebben zelf ook weer afhankelijkheden, zodat je in totaal 472 packages instaleert als je signalk-server installeert.
SignalK gebruikt bijvoorbeeld
moment, een library die verschillende datum/tijd formaten in elkaar kan omzetten. Veel andere packages hebben dat ook nodig, want dat package wordt door 40.791 verschillende packages opgegeven als dependency.
Het
npm-commando gebruik je in de terminal om packages te installeren. Dit is de tool die uitzoekt welke andere packages je daarvoor nodig hebt, en die dan de juiste versie van elk package download. Npm handmatig upgraden is inderdaad niet zo moeilijk (
sudo npm install -g npm@latest, zoek het verschil met het commando in de startpost
), maar over het algemeen ook niet nodig. Het npm-commando wordt meegeleverd met Node.js, en het commando zelf is stabiel genoeg om het niet handmatig te hoeven upgraden. Met een versie van twee jaar geleden kan je ook gewoon nog de nieuwste packages downloaden.