Node.js
Как загружаются модули
Поиск…
Глобальный режим
Если вы установили узел с использованием каталога по умолчанию, а в глобальном режиме, NPM устанавливает пакеты в /usr/local/lib/node_modules . Если вы введете следующее в оболочке, NPM будет искать, загружать и устанавливать последнюю версию пакета с именем sax внутри каталога /usr/local/lib/node_modules/express :
$ npm install -g express
Убедитесь, что у вас есть достаточные права доступа к папке. Эти модули будут доступны для всех процессов узла, которые будут работать на этом компьютере
В локальном режиме установки. Npm загрузит и установит модули в текущие рабочие папки, создав новую папку node_modules например, если вы находитесь в /home/user/apps/my_app создана новая папка, называемая node_modules /home/user/apps/my_app/node_modules если его еще не существует
Загрузочные модули
Когда мы ссылаемся на модуль в коде, узел сначала ищет папку node_module внутри указанной папки в требуемом заявлении. Если имя модуля не является относительным и не является основным модулем, Node будет пытаться найти его внутри папки node_modules в текущем каталог. Например, если вы выполните следующее, Node попытается найти файл ./node_modules/myModule.js :
var myModule = require('myModule.js');
Если Node не сможет найти файл, он будет выглядеть внутри родительской папки с именем ../node_modules/myModule.js . Если он не сработает снова, он попробует родительскую папку и продолжит спускаться до тех пор, пока не достигнет корня или не найдет необходимый модуль.
Вы также можете опустить расширение .js если хотите, и в этом случае узел добавит расширение .js и будет искать файл.
Загрузка модуля папок
Вы можете использовать путь к папке для загрузки модуля следующим образом:
var myModule = require('./myModuleDir');
Если вы это сделаете, узел будет искать внутри этой папки. Узел предположит, что эта папка представляет собой пакет и попытается найти определение пакета. Это определение пакета должно быть файлом с именем package.json . Если в этой папке не содержится файл определения пакета с именем package.json , точка ввода пакета будет принимать значение по умолчанию index.js , а в этом случае Node будет искать файл по пути ./myModuleDir/index.js .
Последнее, если модуль не найден ни в одной из папок, это папка установки глобального модуля.