Quando si richiede il pacchetto npm, qual è il significato della barra nel nome del pacchetto?

Mentre “richiedono” moduli NodeJS non locali, qual è il significato della barra nel nome del modulo?

Esempio:
dalla pagina github del modulo npm di ShellJS (link: https://github.com/shelljs/shelljs#javascript )

require('shelljs/global');
require('shelljs/make');

Osservando la struttura delle directory del progetto github di ShellJS, noto che sia global.js che make.js sono entrambi allo stesso livello di shell.js che è il punto di ingresso principale del modulo come per il suo package.json. Che cosa significa la barra nel nome del pacchetto e in che modo, nell’esempio sopra, il percorso per “globale” e “trucco” è stato risolto?

Slash (come uso principale), è semplicemente usato per i percorsi dei file.

require('shelljs/global') caricherà lo script del file global.js .

require('shelljs/make') caricherà lo script del file make.js

Tuttavia, require('shelljs') caricherà lo script di shell.js . Perché? Diamo un’occhiata al contenuto di package.json : È "main": "./shell.js" che fa la magia.