Когда требуется для пакета npm, что означает слэш в имени пакета?

В то время как "требующие" нелокальные модули NodeJS, в чем смысл слэша в имени модуля?

Пример:
с сайта gmail.com на сайте ShellJS npm (ссылка: https://github.com/shelljs/shelljs#javascript)

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

Посмотрев на структуру каталогов проекта ShellJS github, я заметил, что оба global.js и make.js находятся на уровне уровня . js, который является основной точкой входа модуля в соответствии с его пакетом. json. Итак, что означает слэш в названии пакета и как в приведенном выше примере путь к "глобальному" и "сделать" разрешен?

Ответ 1

Slash (как основное использование) просто используется для путей к файлам.

require('shelljs/global') загрузит script файла global.js.

require('shelljs/make') загрузит script файла make.js.

Однако require('shelljs') загрузит script из shell.js. Зачем? Давайте посмотрим на содержимое package.json: It "main": "./shell.js", которое делает магию.