Je me souviens qu'il y a longtemps dans Node js, il était nécessaire d'utiliser path.join afin de charger les modules locaux multiplateformes. Je veux simplement savoir si nous avons toujours besoin d'une telle stratégie ou si elle n'est plus nécessaire pour le nœud 12+ ?

Merci

Par exemple.

const i= require(path.join(__dirname,'config','myModule'))

Au lieu d'écrire

const i=require('./config/module')
0
Sami 17 oct. 2020 à 21:04

1 réponse

Meilleure réponse

L'un ou l'autre fonctionnera très bien et fonctionnera très bien dans node.js depuis aussi longtemps que je me souvienne. Les règles de chargement des modules pour require() sont entièrement documentées ici. Votre cas spécifique devrait être couvert par la toute première section et l'étape 3a qui est la suivante :

require(X) from module at path Y
1. If X is a core module,
   a. return the core module
   b. STOP
2. If X begins with '/'
   a. set Y to be the filesystem root
3. If X begins with './' or '/' or '../'
   a. LOAD_AS_FILE(Y + X)

Les moments où vous devrez peut-être utiliser path.join() sont lorsque vous construisez un chemin que vous enverrez à un module externe qui nécessite des séparateurs de chemin spécifiques au système d'exploitation ou lorsque vous voulez simplement que path.join() s'occupe de vous assurer il y a un et un seul séparateur de chemin entre les morceaux que vous joignez (comme lorsque vous ne savez pas si des morceaux individuels ont déjà des barres obliques de début ou de fin).

require() lui-même fonctionnera correctement avec / comme séparateur de chemin sur n'importe quelle plate-forme prise en charge, donc require('./config/module') fonctionnera bien sous Windows même si le séparateur de chemin du système d'exploitation est \.

1
jfriend00 17 oct. 2020 à 20:57