2013-12-12 2 views
0

Я читаю документацию по использованию requirejs в узле. Но я смущен «передавая файлы верхнего уровня требует расслоения плотной requirejs» .Below является частью документации с require.js:понимание Nodejs с использованием requirejs

var requirejs = require('requirejs'); 

requirejs.config({ 
    //Pass the top-level main.js/index.js require 
    //function to requirejs so that node modules 
    //are loaded relative to the top-level JS file. 
    nodeRequire: require 
}); 

Что делает эту строку коды: «nodeRequire: требует» средств ? Я прокомментирую эту строку и требует правильного запуска на узле.

ответ

1

В вашей первой строке вы используете require() -функцию node.js.

var requirejs = require('requirejs'); 

Это означает, что «настоящая» функция хранится в переменной с именем «require». Теперь вы передаете эту функцию requirejs.

requirejs.config({ 
    nodeRequire: require 
}); 

Вы в настоящее время находитесь в вашем каталоге верхнего уровня, например. /path/myproject. Теперь, если вам потребуется что-то в пределах /path/myproject/lib/another.js, он будет загружать модули относительно /path/myproject, а не /path/myproject/lib/another.js.

Попробуйте использовать модуль в подкаталоге с nodeRequire: require и без него.

+1

спасибо Фабио, я попробовал модуль в подкаталоге. он работает точно так же, как вы сказали. Кстати, если вы сконфигурируете baseUrl и путь, requirejs будет следовать настройке baseUrl и пути. –

Смежные вопросы