2 min read

Node.js : npm & npx 101

Gestion de paquets JavaScript/Typescript côté CLI

Exécutez les commandes à la racine de votre projet pour éviter les comportements inattendus.

Installer Node.js

Linux

# Installer nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# Charger nvm sans redémarrer la session
. "$HOME/.nvm/nvm.sh"

# Installer Node.js
nvm install 24

# Vérifier
node -v
npm -v

Pour d'autres OS, consultez la documentation officielle de Node.js / nvm.

Démarrage rapide

mkdir demo-npm && cd demo-npm

# Créer un nouveau projet node.js interactivement
npm init # -y Créer plutôt avec valeurs par défaut

mkdir -p src && printf "console.log('Hello npm');\n" > src/index.js

path="package.json"

cat << 'EOF' > "$path"
{
"scripts": {
  "start": "node src/index.js",
  "dev": "node --watch src/index.js",
  "test": "node -e \"console.log(\\\"ok\\\")\"",
  "clean": "rm -rf node_modules dist"
}
"dependencies": {
},
"devDependencies": {
}
}
EOF
echo "✅ $path a été créé."

Exécuter les scripts :

npm run dev
npm start
npm test

Installer, mettre à jour, désinstaller des paquets

Les dépendences qu'on installe avec npm install sont automatiquement ajoutées dans package.json. Il est possible mais déconseiller de changer ce comportement par défaut.

# Lister les paquets installés
npm list # --depth=0 : Lister seulement les dépendances de premier niveau

# Voir les détails d'un paquet
npm view express # versions : Voir toutes les versions disponibles

# ajouter des dépendences
npm install {package-1} {package-2}@{version} ... 
# -D dev dépendences
# -g global (sans ajoute au `package.json`)
# @{version} est optionel si vous souhaitez une version particulier

# installler toutes dépendences spécifié dans `package.json`
npm install # uninstall pour l'inverse

npm outdated # Voir les paquets obsolètes
npm update

Utiliser npx pour des outils ponctuels

Pour des petit paquets, il est possible de les exécuter sans installation préalable.

npx {commande}  # e.g., npx prisma studio

Il est aussi utile pour invoquer des générateurs des projets. Voir section suivante.

Générateur de projet

# Créer un projet avec un générateur
npx {project-name}@latest app -- --template react-ts
cd app
npm install
npm run dev

Configuration

# Voir toute la configuration
npm config list

# Définir le registre
npm config set registry https://registry.npmjs.org/

# Définir le scope par défaut
npm config set scope @mon-organisation

Gestion du cache

# Voir le cache
npm cache verify

# Nettoyer le cache
npm cache clean --force

Publication (package public simple)

Tout le monde peut publier des paquets. Si vous avez crée quelques chose sympa, partagez !

npm login
npm publish --access public --tag beta

Pensez à renseigner name, version, main/module, files dans package.json avant publish.

En savoir plus