Le module path de Node.js fournit des utilitaires pour manipuler et transformer les chemins de fichiers et de repertoires de maniere portable.
Joindre et Résoudre des Chemins (join vs resolve)
const path = require('path');
// Joint les segments et normalise le chemin resultant
path.join('/users', 'local', 'bin', '..');
// => '/users/local'
// Resout un chemin absolu de droite a gauche par rapport a cwd
path.resolve('src', 'index.js');
// => '/current/working/dir/src/index.js'
Décomposition des Chemins
const fullPath = '/workspace/project/src/main.ts';
path.dirname(fullPath);
// => '/workspace/project/src' // Nom du repertoire parent
path.basename(fullPath);
// => 'main.ts' // Nom du fichier avec extension
path.basename(fullPath, '.ts');
// => 'main' // Nom du fichier sans extension
path.extname(fullPath);
// => '.ts' // Extension du fichier
path.parse(fullPath);
// Analyse le chemin sous forme d'objet detaille
// {
// root: '/',
// dir: '/workspace/project/src',
// base: 'main.ts',
// ext: '.ts',
// name: 'main'
// }
Chemins Relatifs et Normalisation
// Chemin relatif de A vers B
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// => '../../impl/bbb'
// Normalise le chemin et nettoie les separateurs redondants
path.normalize('/foo/bar//baz/asdf/quux/..');
// => '/foo/bar/baz/asdf'
Séparateurs Multi-plateformes
// Separateur de chemin : '/' sous POSIX ou '\' sous Windows
path.sep;
// Delimiteur de PATH : ':' sous POSIX ou ';' sous Windows
path.delimiter;