wiki/HowtoNodeJS.md

83 lines
2.2 KiB
Markdown
Raw Normal View History

2017-02-17 15:58:58 +01:00
---
categories: web
title: Howto NodeJS
...
2016-12-29 11:25:39 +01:00
2018-02-20 21:21:31 +01:00
* Documentation : <https://nodejs.org/dist/latest-v8.x/docs/api/>
2018-01-18 18:28:55 +01:00
* Rôle Ansible : <https://forge.evolix.org/projects/ansible-roles/repository/show/nodejs>
2016-12-29 11:25:39 +01:00
2017-02-17 15:58:58 +01:00
[NodeJS](https://nodejs.org/) est une implémentation cote serveur du langage Javascript.
2016-12-29 11:25:39 +01:00
2017-02-17 15:58:58 +01:00
## Installation
2018-01-18 18:28:55 +01:00
Nodejs est disponible en version 4.x sur Debian Stretch. Mais son cycle de maintenance par développeurs se termine en Avril 2018.
Sur Debian Jessie, c'est la version 0.10.X qui est présente mais elle est déprécié par l'upstream…
2017-02-17 15:58:58 +01:00
2018-02-20 21:21:31 +01:00
Pour installer une version plus récente (ex: 8.x LTS), on peut utiliser les dépôts de nodesource. Ainsi, pour Debian Stretch :
2016-12-29 11:25:39 +01:00
~~~
2018-01-18 18:28:55 +01:00
# echo "deb http://deb.nodesource.com/node_8.x stretch main" > /etc/apt/sources.list.d/nodesource.list
2018-02-20 21:21:31 +01:00
# wget https://deb.nodesource.com/gpgkey/nodesource.gpg.key -O - | apt-key add -
2016-12-29 11:25:39 +01:00
# apt update
2017-02-17 15:58:58 +01:00
# apt install nodejs
2018-01-18 18:28:55 +01:00
$ nodejs -v
v8.9.4
2016-12-29 11:25:39 +01:00
~~~
2018-01-18 18:28:55 +01:00
Il est également possible d'installer la version 9 en remplaçant la fin de l'URL du dépôt par `node_9.x`. Mais la branche 9.x ne n'aura pas de support sur le long terme.
2017-11-10 11:04:51 +01:00
2017-02-17 15:58:58 +01:00
## Utilisation de module NPM
On peut ensuite installer des packages npm en tant qu'utilisateur :
2016-12-29 11:25:39 +01:00
~~~
$ npm version
2018-01-18 18:28:55 +01:00
{ npm: '5.6.0',
2016-12-29 11:25:39 +01:00
ares: '1.10.1-DEV',
2018-01-18 18:28:55 +01:00
cldr: '31.0.1',
2017-02-17 15:58:58 +01:00
http_parser: '2.7.0',
2018-01-18 18:28:55 +01:00
icu: '59.1',
modules: '57',
nghttp2: '1.25.0',
node: '8.9.4',
openssl: '1.0.2n',
tz: '2017b',
unicode: '9.0',
uv: '1.15.0',
v8: '6.1.534.50',
zlib: '1.2.11' }
2016-12-29 11:25:39 +01:00
$ npm install ping
2018-01-18 18:28:55 +01:00
/home/foo
└─┬ ping@0.2.2
├── q@1.5.1
└── underscore@1.8.3
2016-12-29 11:25:39 +01:00
$ npm list
2018-01-18 18:28:55 +01:00
/home/foo
└─┬ ping@0.2.2
├── q@1.5.1
└── underscore@1.8.3
2018-01-25 14:08:06 +01:00
~~~
2016-12-29 11:25:39 +01:00
2018-02-20 21:21:31 +01:00
Certains modules peuvent aussi être installés de manière globale.
Et ainsi rendre la commande disponible via /usr/bin/<nom_module> et les bibliothèques dans `/usr/lib/node_modules`.
2016-12-29 11:25:39 +01:00
~~~
2017-02-17 15:58:58 +01:00
npm install -g npm
chown -R root: /usr/lib/node_modules
chmod -R 755 /usr/lib/node_modules
2018-01-18 18:28:55 +01:00
~~~
2018-02-20 21:21:31 +01:00
## Problèmes courants
~~~
$ npm run dev
[…]
sh: 1: node_modules/cross-env/dist/bin/cross-env.js: Permission denied
[…]
~~~
Lorsque "npm" lève une erreur "Permission denied" alors que tout semble exister avec les bons droits, il faut vérifier que la partition courant ne soit pas montée en "noexec".