2013-04-18 1 views
0

У меня есть небольшой файл конфигурации, который мне нужен во фронте и в моей задаче для ворчания.Модуль RequireJs в узле всегда возвращает undefined при использовании в задаче grunt

JS/config.js:

define(function() { 
    return [ 
    { 
     id: 'demo', 
     displayName: 'Demo' 
    } 
    ]; 
}); 

я могу загрузить файл в веб-интерфейсе без проблем работать в узле. var requirejs = require ('requirejs');

requirejs.config({ 
    nodeRequire: require, 
    baseUrl: './js' 
}); 
var config = requirejs('config') 

Но когда я пытаюсь загрузить тот же файл в задаче хрюкать он возвращает неопределенное значение:

requirejs.config({ 
    nodeRequire: require, 
    baseUrl: './js' 
}); 
grunt.registerTask('lala', function () { 
    var config = requirejs('config') 
}); 

ответ

1

Проблема была в том, что я требую requireJs вне функции module.exports. Так что это работает в конце концов:

module.exports = function(grunt) { 

    var requirejs = require('requirejs'); 

    requirejs.config({ 
    nodeRequire: require, 
    baseUrl: './js/cfe/app/platforms/as' 
    }); 

    grunt.registerTask('lala', function () { 
    var config = requirejs('config') 
    }); 
} 
0

Этот код работает для меня. Во-первых я установил requirejs:

cd /path/to/code/directory 
npm install requirejs 

Тогда в моих app.js:

var requirejs = require('requirejs'); 

requirejs.config({ 
    nodeRequire: require, 
    baseUrl: './js' 
}); 

var config = requirejs('config'); 
console.log(config); 

А в JS/config.js:

define(function() { 
    return [ 
    { 
     id: 'demo', 
     displayName: 'Demo' 
    } 
    ]; 
}); 

Когда я запускаю его, я получить правильный результат:

$ node app.js 
[ { id: 'demo', displayName: 'Demo' } ] 

Я использую узел v0.10.1.

+0

Вы уверены, что загрузили асинхронную загрузку. В документах для узла есть пример для синхронного вызова: http://requirejs.org/docs/node.html#3 –

+0

@ AndreasKöberle. Вы правы, мне очень жаль. Я обновил свой ответ, но все работает для меня. Можете ли вы воспроизвести эти шаги и убедиться, что проблема не что-то еще? – jgillich

+0

ОК проверил его, и он запускается в отдельном файле. –

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