uglify с grunt-concurrent не работает

Я пытаюсь использовать grunt-concurrent для параллельного минимизации моих файлов javascript. Я также использую usemin и ngmin.

Когда я использую uglify без grunt-concurrent, я получаю ожидаемый результат с этим выводом журнала:

Running "uglify:dist" (uglify) task

Running "uglify:dist/scripts/jquery_and_angular.js" (uglify) task
File dist/scripts/jquery_and_angular.js created.

Running "uglify:dist/scripts/external-non-angular-libraries.js" (uglify) task
File dist/scripts/external-non-angular-libraries.js created.

Running "uglify:dist/scripts/modules.js" (uglify) task
File dist/scripts/modules.js created.

Running "uglify:dist/scripts/scripts.js" (uglify) task
File dist/scripts/scripts.js created.

Но когда я пытаюсь выполнить эти задачи, используя grunt-concurrent с этой конфигурацией:

    concurrent: {
        lessAndMinify: [
            'ngmin',
            'less'
        ],
        uglify: [
            'uglify:dist/scripts/jquery_and_angular.js',
            'uglify:dist/scripts/external-non-angular-libraries.js',
            'uglify:dist/scripts/modules.js',
            'uglify:dist/scripts/scripts.js',
            'uglify:dist/scripts/templates.js'
        ]
    },

Я получаю сообщение, что эти задачи не настроены:

Running "concurrent:uglify" (concurrent) task
Warning: Running "uglify:dist/scripts/jquery_and_angular.js" (uglify) task
Verifying property uglify.dist/scripts/jquery_and_angular\.js exists in config...ERROR
>> Unable to process task.
Warning: Required config property "uglify.dist/scripts/jquery_and_angular\.js" missing. Use --force to continue.

Aborted due to warnings. Used --force, continuing.

Running "uglify:dist/scripts/jquery_and_angular.js" (uglify) task
Verifying property uglify.dist/scripts/jquery_and_angular\.js exists in config...ERROR
>> Unable to process task.
Warning: Required config property "uglify.dist/scripts/jquery_and_angular\.js" missing. Use --force to continue.

Aborted due to warnings.
    Warning: Running "uglify:dist/scripts/modules.js" (uglify) task
Verifying property uglify.dist/scripts/modules\.js exists in config...ERROR
>> Unable to process task.
Warning: Required config property "uglify.dist/scripts/modules\.js" missing. Use --force to continue.

Aborted due to warnings. Used --force, continuing.

Running "uglify:dist/scripts/modules.js" (uglify) task
Verifying property uglify.dist/scripts/modules\.js exists in config...ERROR
>> Unable to process task.
Warning: Required config property "uglify.dist/scripts/modules\.js" missing. Use --force to continue.

Моя конфигурация задачи сборки такова:

    grunt.registerTask('build', [
    'clean:dist',
    'ngtemplates',
    'copy:indexHtml',
    'replace',
    'useminPrepare',
    'concat',
    'copy:dist',
    'copy:generated',
    'concurrent:lessAndMinify', // ngmin and less
//  'concurrent:uglify',
    'uglify',
    'rev',
    'usemin'
]);

Вопрос в том, как я могу использовать grunt-concurrent с uglify и usemin/ngmin?


person Community    schedule 07.10.2014    source источник


Ответы (1)


usemin добавляет задачи на лету, но они по какой-то причине не видны в grunt-concurrent. Чтобы решить эту проблему, вам нужно вручную добавить файлы для uglify:

    uglify: {
        dist: {
            options: {
                sourceMap: true
            },
            files: {
            }
        },

        // you have to add this manually!
        "dist/scripts/jquery_and_angular.js": "dist/scripts/jquery_and_angular.js",
        "dist/scripts/external-non-angular-libraries.js": "dist/scripts/external-non-angular-libraries.js",
        "dist/scripts/modules.js": "dist/scripts/modules.js",
        "dist/scripts/scripts.js": "dist/scripts/scripts.js",
        "dist/scripts/templates.js": "dist/scripts/templates.js"
    },

Проблема в том, что это не сухо. вы должны настроить его в index.html, в grunt-concurrent и здесь, в uglify..

person Community    schedule 07.10.2014