Задача grunt-contrib-requirejs останавливает Grunt без ошибок

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

Моя общая задача

grunt.registerTask('build', [
    'clean:dist',
    'jshint',
    'handlebars',
    'requirejs',
    'concat:dist',
    'uglify',
    'compass',
    'imagemin',
    'cssmin',
    'copy'
]);

Это моя задача конфигурации

requirejs: {
    dist: {
        options: {
            baseUrl: 'app',
            optimize: 'none',
            optimizeCss: 'none', // We use cssmin for this
            preserveLicenseComments: true,
            dir: 'dist/',

            useStrict: true,
            wrap: false,
            findNestedDependencies: true,

            //If set to true, any files that were combined into a build bundle will be
            //removed from the output folder.
            removeCombined: true,

            paths: {
                aura: '<%= settings.bower %>/aura/lib/aura',
                underscore: '<%= settings.bower %>/underscore/underscore',
                eventemitter: '<%= settings.bower %>/eventemitter2/lib/eventemitter2',
                backbone: '<%= settings.bower %>/backbone/backbone',
                handlebars: '<%= settings.bower %>/handlebars/handlebars',
                text: '<%= settings.bower %>/requirejs-text/text',
                jquery: '<%= settings.bower %>/jquery/jquery'
            },

            shim: {
                backbone: {
                    exports: 'Backbone',
                    deps: ['underscore', 'jquery']
                },
                underscore: {
                    exports: '_'
                },
                handlebars: {
                    exports: 'Handlebars'
                }
            },

            modules: [{
                name: "app",
                include: ["aura","jquery"]
            }],

            onBuildWrite: function( name, path, contents ) {
                grunt.log.writeln( 'Writing: ' + name );
                return contents
            },

            done: function(done, output) {
                var duplicates = require('rjs-build-analysis').duplicates(output);

                if (duplicates.length > 0) {
                    grunt.log.subhead('Duplicates found in requirejs build:');
                    grunt.log.warn(duplicates);
                    done(new Error('r.js built duplicate modules, please check the excludes option.'));
                }

                grunt.log.writeln('All done');

                done();
            }

        }
    }
}

Я пытался запустить его с -v флаг, но я не получаю ошибок или предупреждений. Затем он просто останавливается и не запускает другие задачи, которые я определил, я не получаю пользовательские журналы, которые я определил. Я получаю этот вывод:

Running "requirejs" task

Running "requirejs:dist" (requirejs) task
Verifying property requirejs.dist exists in config...OK
File: [no files]
Options: logLevel=0, done=undefined, baseUrl="app", optimize="none", optimizeCss="none", preserveLicenseComments, dir="dist/", useStrict, wrap=false, findNestedDependencies, removeCombined, paths={"aura":"bower_components/aura/lib/aura","underscore":
"bower_components/underscore/underscore","eventemitter":"bower_components/eventemitter2/lib/eventemitter2","backbone":"bower_components/backbone/backbone","handlebars":"bower_components/handlebars/handlebars","text":"bower_components/requirejs-text/t
ext","jquery":"bower_components/jquery/jquery"}, shim={"backbone":{"exports":"Backbone","deps":["underscore","jquery"]},"underscore":{"exports":"_"},"handlebars":{"exports":"Handlebars"}}, modules=[{"name":"app","include":["aura","jquery"]}], onBuild
Write=undefined
>> Tracing dependencies for: app

Из этого вывода видно, что функция done не определена, но я определил ее, я даже использовал пример из файла readme grunt-contrib-requirejs.

я использую grunt@0.4.1 а также grunt-contrib-requirejs@0.4.1 с requirejs@2.1.8, Узел версия v0.8.16

Обновить один

Я попытался обновить мой узел, я сейчас на v0.10.17 но без изменений здесь.

Я удалил aura из моих модулей включают, теперь это выглядит так:

modules: [{
    name: "app",
    include: ["jquery"]
}],

Это дало мне немного больше информации, но все равно останавливает мой Grunt и не запускает мою готовую функцию, я получаю такой вывод:

>> app.js
>> ----------------
>> bower_components/aura/lib/platform.js
>> bower_components/aura/lib/base.js
>> bower_components/aura/lib/logger.js
>> bower_components/aura/lib/aura.extensions.js
>> bower_components/aura/lib/aura.js
>> app.js

3 ответа

Решение

Проблема в том, что ваш done функция не работает, и задание grunt не было настроено для передачи вам ошибки. Я сделал пиар, который вы можете посмотреть здесь, чтобы решить проблему.

Я нашел свою проблему как проблему на GitHub здесь: https://github.com/gruntjs/grunt-contrib-requirejs/issues/37

Но решения пока нет, возможно, мне придется самому разобраться с ошибкой.

Если вы удалите весь раздел "готово" из параметров requireJS, это не остановит выполнение списка задач, однако вы потеряете возможность выполнять анализ вашего скомпилированного кода.

Другие вопросы по тегам