El modulo path de Node.js proporciona utilidades para trabajar con rutas de archivos y directorios de forma compatible entre distintos sistemas operativos.
Unir y Resolver Rutas (join frente a resolve)
const path = require('path');
// Une segmentos y normaliza la ruta resultante
path.join('/users', 'local', 'bin', '..');
// => '/users/local'
// Resuelve una ruta absoluta secuencialmente respecto a cwd
path.resolve('src', 'index.js');
// => '/current/working/dir/src/index.js'
Descomposición de Rutas
const fullPath = '/workspace/project/src/main.ts';
path.dirname(fullPath);
// => '/workspace/project/src' // Nombre del directorio contenedor
path.basename(fullPath);
// => 'main.ts' // Nombre del archivo con extension
path.basename(fullPath, '.ts');
// => 'main' // Nombre del archivo sin extension
path.extname(fullPath);
// => '.ts' // Extension del archivo
path.parse(fullPath);
// Descompone la ruta en un objeto con sus propiedades
// {
// root: '/',
// dir: '/workspace/project/src',
// base: 'main.ts',
// ext: '.ts',
// name: 'main'
// }
Rutas Relativas y Normalización
// Ruta relativa desde A hacia B
path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');
// => '../../impl/bbb'
// Normaliza la ruta eliminando puntos redundantes y barras
path.normalize('/foo/bar//baz/asdf/quux/..');
// => '/foo/bar/baz/asdf'
Separadores Multiplataforma
// Separador de ruta: '/' en POSIX o '\' en Windows
path.sep;
// Delimitador de PATH: ':' en POSIX o ';' en Windows
path.delimiter;