-
Notifications
You must be signed in to change notification settings - Fork 0
Node.js
Node.js ist eine auf einem Host laufende Javascript Laufzeitumgebung.
Sie wird häufig dazu verwendet um auf einem Server-Host Javascript Applikationen auzuführen, zum Beispiel einen Web-Server.
Dokumentation: https://docs.npmjs.com/
Node.js wird in der JavaScript-Laufzeitumgebung V8 ausgeführt. Diese von Google entwickelte ressourcensparende Architektur eignet sich besonders gut für eine große Anzahl gleichzeitig bestehender Netzwerkverbindungen.
Node.js kann auf linuxbasierenden Plattformen wie Ubuntu, Raspberry Raspian (Debian), ... über bestehende Software-Repositories sehr einfach und komfortabel installiert werden.
Siehe: https://nodejs.org/en/download/package-manager/
sudo -i
curl -sL https://deb.nodesource.com/setup_6.x | sudo bash -
apt-get install nodejs
Dadurch wird die Datei /etc/apt/sources.list.d/nodesource.list angelegt, die Informationen über die verfügbaren Pakete werden aktualisiert, und das Paket nodejs schließlich installiert.
Nun stehen die beiden Kommandos node und npm zur Verfügung:
$ node --version
v7.10.0
$ npm --version
4.6.1
Mit dem Kommando node (oder nodejs) können entsprechend Node.js Applikationen ausgeführt werden. Mit dem Kommando npm wird der Node Package Manager aufgerufen. Er dient zum Herunterladen bzw. installieren von Node.js Modulen.
Siehe auch: https://docs.npmjs.com/getting-started/installing-node
Eine Aktualisierung von npm erfolgt mit:
sudo npm install npm@latest -g
Die Installation von Paketen kann lokal (im Projekt) oder global (im System) erfolgen. Dadurch ist es möglich, dass Projekte aus Kompatibilitätsgründen mit älteren Paketen arbeiten, während im System die neuesten Pakete installiert sind.
Auf Ubunto werden globale Pakete unter /usr/lib/node_modules abgespeichert.
Dieser Pfad lässt sich auch ändern, siehe: https://docs.npmjs.com/getting-started/fixing-npm-permissions
Sollten globale Module auf einem System nicht gefunden werden, so kann die Umgebungsvariable NODE_PATH gesetzt werden.
In diesem Fall ist folgendes Kommando ausführen ...
export set NODE_PATH='/usr/lib/node_modules/'
... oder noch besser, die Variable beim Login erzeugen, zum Beispiel in der Datei ~/.profile folgende Zeile eintragen:
NODE_PATH='/usr/lib/node_modules/'
sudo npm install -g npm-check-updates
Durch Angabe der Option -g wird das Paket npm-check-updates global (also in /usr/lib/node_modules) installiert.
Fehlt die Option -g so wird das Paket im aktuellen Verzeichnis unter node_modules gespeichert.
npm install sprintf-js
Dabei wird auch auf die Datei package.json in diesem Verzeichnis zugegriffen. In dieser Datei sind alle wichtigen Projektinformationen enthalten. Fehlt diese Datei so erfolgt die Ausgabe einer Warnung.
Existiert die Datei noch nicht so kann sie mit npm init neu erzeugt werden.
Siehe auch: https://docs.npmjs.com/getting-started/using-a-package.json
Die Erstellung eines neuen Projekt erfolgt daher normalerweise mit folgenden Kommandos:
mkdir myproject
cd myproject
npm init
npm install <paket1> <paket2> ...
Wird bei der Installation von Paketen die Option --save angegeben, so wird das Paket in der Datei package.json unter dem Attribut dependencies eingetragen. Hier sollten Pakete stehen die für die Projektapplikation selbst erforderlich sind.
Wird bei der Installation von Paketen die Option --save-dev angegeben, so wird das Paket in der Datei package.json unter dem Attribut devDependencies eingetragen. "dev" steht dabei für Development. Hier sollten Pakete stehen die für die Erstellung des Projekts erforderlich sind (Build-Tools, Compiler, ...).
$ mkdir myFirstProject
$ cd myFirstProject
$ npm init
package name: (myfirstproject)
version: (1.0.0)
description: My first project
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to /home/steiner/myFirstProject/package.json:
{
"name": "myfirstproject",
"version": "1.0.0",
"description": "My first project",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
Is this ok? (yes) yes
Nun werden die erforderlichen Pakete installiert.
$ npm install --save sprintf-js
myfirstproject@1.0.0 /home/steiner/myFirstProject
└── sprintf-js@1.1.0
$ npm install --save-dev typescript
myfirstproject@1.0.0 /home/steiner/myFirstProject
└── typescript@2.3.3
$ npm install --save-dev @types/node
myfirstproject@1.0.0 /home/steiner/myFirstProject
└── @types/node@7.0.22
Danach sind die Pakete im Unterverzeichnis node_modules gespeichert und in der Datei package.json eingetragen.
$ ls node_modules
sprintf-js @types typescript
$ cat package.json
{
"name": "myfirstproject",
"version": "1.0.0",
"description": "My first project",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"sprintf-js": "^1.1.0"
},
"devDependencies": {
"@types/node": "^7.0.22",
"typescript": "^2.3.3"
}
}
Das ^ im Eintrag bedeitet, dass mindestens diese Version erforderlich ist. Es kann aber auch eine höhere Version sein. Wird ^ entfernt so muss es exakt diese Version sein.
Wenn das Projekt auf einem GIT-Server abgelegt wird, so darf der Unterordner node_modules nicht mitgesichert werden. Daher wird eine Datei .gitignore angelegt, und die Zeile ...
**/node_modules
... eingetragen.
Wird das Projekt später auf einem anderen Rechner gecloned, so fehlt zunächst das Verzeichnis node_modules. Durch Aufruf des Kommandos npm install werden aber automatisch alle in der Datei package.json eingetragenen Pakete installiert.
npm clone https://github.com/HtlMechatronics/nodeExample
cd nodeExample
npm install