Your SlideShare is downloading. ×
0
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Node.js et NPM: de la récupération de dépendances à la publication de paquets
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Node.js et NPM: de la récupération de dépendances à la publication de paquets

501

Published on

Une présentation sur le cycle de vie d'un module Node.js. Dans cette présentation on apprend comment utiliser NPM pour bien décrire son projet et ses dépendances. Puis on apprend comment préparer et …

Une présentation sur le cycle de vie d'un module Node.js. Dans cette présentation on apprend comment utiliser NPM pour bien décrire son projet et ses dépendances. Puis on apprend comment préparer et publier son projet.

Présentation faite à Solution Linux 2014. http://www.solutionslinux.fr/

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
501
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. Node.js et NPM De la gestion de dépendances à la publication de packages
  2. NodeJS - Environnement d'exécution asynchrone - Basé sur V8 - Permet d'utiliser Javascript côté serveur - Mais surtout ...
  3. Une communauté très active ! 
  4. NPM - Gestionnaire de paquets (Equivalent de pip en python ou gem en Ruby) - Registry (annuaire, moteur de recherche) - Basé sur un manifeste (package.json)
  5. { "name": "americano", "version": "0.1.0", "description": "Express simplifié !", "author": "Frank Rousseau <frank@cozycloud.cc>", "dependencies": { "colors": "0.x.x", "express": "3.3.x", "commander": "2.3.1", "printit": "0.2.x" }, "devDependencies": { "mocha": "0.5.x" }, "engine": "node >= 0.4.1" }
  6. Dépendances
  7. { "name": "americano", "version": "0.1.0", "description": "Express simplifié !", "author": "Frank Rousseau <frank@cozycloud.cc>", "dependencies": { "colors": "0.x.x", "express": "3.3.x", "commander": "2.3.1", "printit": "0.2.x" },, "devDependencies": { "mocha": "0.5.x" }, "engine": "node >= 0.4.1" }
  8. { "name": "americano", "version": "0.1.0", "description": "Express simplifié !", "author": "Frank Rousseau <frank@cozycloud.cc>", "dependencies": { "colors": "0.x.x", "express": "3.3.x", "commander": "2.3.1", "printit": "0.2.x" }, "devDependencies": { "mocha": "0.5.x" }, "engine": "node >= 0.4.1" }
  9. npm install [--production] npm install --save colors npm install -g express Récupération
  10. # affiche l'arbre des # dépendances npm ls # affiche les dépendances # obsolètes npm outdated # Génère les dépendances # manquantes pakmanager deps
  11. packages NPM utiles
  12. Très populaires - ExpressJS/Sails/Americano (framework web) - Request/Request-json (requêtage simplifié) - Underscore/Lodash (utilitaires tableaux) - Commander/Optimist/Nopt (parsers d'arguments) - Jade (moteur de template) - Moment (date) - Stylus (pré-processeur CSS)
  13. Populaires - Cheerio (scraping) - Through (gestion de flux) - Glob (recherche de fichiers) - Rimraf/fs-extra (rm -rf, add-on file-system)  - Shelljs (Bash dans node) - Chalk (coloration sortie console)
  14. Build
  15. bin/americano tests/tests.coffee Cakefile README main.coffee package.json bin/americano tests/tests.coffee Cakefile README main.coffee main.js package.json Objectif compilation des sources + raccourci pour les tests + identification du binaire
  16. { "name": "americano", "version": "0.1.0", "description": "Express simplifié !", "author": "Frank Rousseau <frank@cozycloud.cc>", "dependencies": { "colors": "0.x.x", "express": "3.3.x", "commander": "2.3.1", "printit": "0.2.x" }, "devDependencies": { "mocha": "0.5.x" }, "engine": "node >= 0.4.1", "main": "./main.js", "scripts": { "prepublish": "cake build", "test": "cake tests" }, "bin": { "americano": "./bin/americano" } }
  17. { "name": "americano", "version": "0.1.0", "description": "Express simplifié !", "author": "Frank Rousseau <frank@cozycloud.cc>", "dependencies": { "colors": "0.x.x", "express": "3.3.x", "commander": "2.3.1", "printit": "0.2.x" }, "devDependencies": { "mocha": "0.5.x" }, "engine": "node >= 0.4.1", "main": "./main.js", "scripts": { "prepublish": "cake build", "test": "cake tests" <= $ npm test }, "bin": { "americano": "./bin/americano" } }
  18. { "name": "americano", "version": "0.1.0", "description": "Express simplifié !", "author": "Frank Rousseau <frank@cozycloud.cc>", "dependencies": { "colors": "0.x.x", "express": "3.3.x", "commander": "2.3.1", "printit": "0.2.x" }, "devDependencies": { "mocha": "0.5.x" }, "engine": "node >= 0.4.1", "main": "./main.js", "scripts": { "prepublish": "cake build", "test": "cake tests" }, "bin": { "americano": "./bin/americano" } }
  19. Outils de build - Grunt - Cake - Gulp - Broccoli
  20. Grunt - Gruntfile $ npm install -g grunt-cli $ npm install –-save-dev grunt@0.4.4 $ npm install –-save-dev grunt-contrib-coffee@0.10.0 $ grunt module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), coffee: { compile: { files: { './main.js': './main.coffee' }}}}); grunt.loadNpmTasks('grunt-contrib-coffee'); grunt.registerTask('default', ['coffee']); };
  21. Cake - Cakefile $ npm install -g coffee-script $ cake build task "build", "Compile coffee files to JS", -> console.log "Compile main file..." command = "coffee -c main.coffee" exec command, (err, stdout, stderr) -> if err console.log "Error: n #{err}" process.exit 1 else console.log "Compilation succeeded."
  22. Gulp - Gulpfile.js $ npm install -g grunt-cli $ npm install –-save-dev gulp@3.6.2 $ npm install –-save-dev gulp-coffee@1.4.3 $ gulp var gulp = require('gulp'); var coffee = require('gulp-coffee'); gulp.task('scripts', function() { return gulp.src(['./main.coffee']) .pipe(coffee()) .pipe(gulp.dest('./')); }); gulp.task('default', ['scripts']);
  23. Broccoli – Brocfile.js $ npm install -g broccoli $ npm install –-save-dev broccoli@0.12.0 $ npm install –-save-dev broccoli-coffee@0.1.0 $ brocoli build ./build var filterCoffeeScript = require('broccoli-coffee'); module.exports = filterCoffeeScript('src', {});
  24. Publication
  25. npm set init.author.name "Votre nom" npm set init.author.email "vous@exemple.fr" npm set init.author.url "http://votresite.fr" npm adduser Enregistrement
  26. npm version [patch|minor|major] Up de version
  27. npm publish
  28. Apprenez Node.js avec Cozy !  http://cozy.io/hack/getting-started/ @mycozycloud cozy.io

×