nodejs-что использовать вместо require.пути?

последние узел docs сказать, что изменение require.paths - Это плохая практика. Что же мне делать?

3 ответов


Я считаю, что проблема в том, что его можно многократно изменять во время выполнения, а не просто устанавливать. Это, очевидно, может быть запутанным и вызывает некоторые довольно странные ошибки. Кроме того, если отдельные пакеты изменяют путь, результаты применяются глобально, что действительно плохо и противоречит модульной природе узла.

Если у вас есть несколько собственных путей библиотеки, лучшим решением является установка переменной среды NODE_PATH перед запуском узла. Затем узел поднимает это когда он запущен и применяется автоматически.


Я сохраняю связанные модели в том же dir или sub dir и загружаю с помощью:

var x = require('./mod/x');

если это внешний модуль, я устанавливаю его с помощью npm, который правильно помещает модуль в NODE_PATH.

Я никогда не менял require.пути.


посмотрите на https://github.com/patrick-steele-idem/app-module-path-node; Вы можете добавить каталог в require заявления на верхнем уровне, не влияя на пути субмодулей.