const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
path.joinconcatenará __dirnamequal é o nome do diretório do arquivo atual concatenado com valores de someedir com o separador específico da plataforma.
Enquanto que
path.resolveprocessará __dirname, somee dirda direita para a esquerda, precedendo-o pelo processamento.
se algum dos valores de someoudir corresponder a um caminho raiz, o caminho anterior será omitido e o processo será interrompido, considerando-o como raiz
Para entender melhor o conceito, deixe-me explicar um pouco mais detalhadamente da seguinte maneira:
O path.joinepath.resolve são dois métodos ou funções diferentes do módulo de caminho fornecido pelo nodejs.
Onde ambos aceitam uma lista de caminhos, mas a diferença vem no resultado, ou seja, como eles processam esses caminhos.
path.joinconcatena todos os segmentos de caminho fornecidos usando o separador específico da plataforma como um delimitador e normaliza o caminho resultante. Enquanto opath.resolve() processo a sequência de caminhos da direita para a esquerda, com cada caminho subsequente precedido até que um caminho absoluto seja construído.
Quando nenhum argumento é fornecido
O exemplo a seguir ajudará você a entender claramente os dois conceitos:
Meu nome de arquivo é index.jse o diretório de trabalho atual éE:\MyFolder\Pjtz\node
const path = require('path');
console.log("path.join() : ", path.join());
// outputs .
console.log("path.resolve() : ", path.resolve());
// outputs current directory or equalent to __dirname
Resultado
λ node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()O método exibirá o caminho absoluto em que, como path.join()retornos. representando o diretório de trabalho atual se nada for fornecido
Quando algum caminho raiz é passado como argumentos
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
Resultado i
λ node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()concatena apenas a lista de entrada com o separador específico da plataforma enquanto path.resolve()processa a sequência de caminhos da direita para a esquerda, com cada caminho subsequente precedido até que um caminho absoluto seja construído.