const absolutePath = path.join(__dirname, some, dir);
vs.
const absolutePath = path.resolve(__dirname, some, dir);
path.join
concaténera __dirname
qui est le nom du répertoire du fichier courant concaténé avec les valeurs de some
y dir
avec un séparateur spécifique à la plate-forme.
Considérant que
path.resolve
traitera __dirname
, some
y dir
c'est-à-dire de la droite vers la gauche, en le traitant au préalable.
Si l'une des valeurs de some
o dir
correspond à un chemin racine, le chemin précédent sera omis et le reste sera traité en le considérant comme un chemin racine.
Afin de mieux comprendre le concept, permettez-moi d'expliquer les deux en détail comme suit:-
El path.join
y path.resolve
sont deux méthodes ou fonctions différentes du module path fourni par nodejs.
Les deux acceptent une liste de chemins, mais la différence réside dans le résultat, c'est-à-dire la manière dont ils traitent ces chemins.
path.join
concatène tous les segments de chemin donnés en utilisant le séparateur spécifique à la plate-forme comme délimiteur, puis normalise le chemin résultant. Bien que le path.resolve()
traite la séquence de chemins de droite à gauche, chaque chemin suivant étant ajouté au début jusqu'à ce qu'un chemin absolu soit construit.
Si aucun argument n'est fourni
L'exemple suivant vous aidera à comprendre clairement ces deux concepts :-.
Mon nom de fichier est index.js
et le répertoire de travail actuel est 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 equivalent to __dirname
Résultat
node index.js
path.join() : .
path.resolve() : E:\MyFolder\Pjtz\node
path.resolve()
affichera le chemin absolu, tandis que la méthode path.join()
retourne . représentant le répertoire de travail actuel si rien n'est fourni
Quand un chemin de racine est passé comme argument
const path=require('path');
console.log("path.join() : " ,path.join('abc','/bcd'));
console.log("path.resolve() : ",path.resolve('abc','/bcd'));
Résultat i
node index.js
path.join() : abc\bcd
path.resolve() : E:\bcd
path.join()
concatène uniquement la liste d'entrée avec un séparateur spécifique à la plate-forme, tandis que la méthode path.resolve()
traite la séquence de chemins de droite à gauche, chaque chemin suivant étant ajouté au début jusqu'à ce qu'un chemin absolu soit construit.
0 votes
Cette question est en cours de discussion sur méta
3 votes
Cela répond-il à votre question ? Différence entre l'invocation de path.resolve et path.join ?
0 votes
Il semble que la réponse acceptée ait été retirée
0 votes
@user202729 Il était indiqué que la principale différence est que path.join ne normalise pas les chemins, ce qui n'est pas vrai. J'ai supprimé cet avertissement, la réponse acceptée dans cette question a été modifiée depuis lors en une réponse correcte.