笨拙的咕哝声同时不起作用

uglify with grunt-concurrent not working

本文关键字:不起作用      更新时间:2023-09-26

我正在尝试使用grunt concurrent来并行缩小我的javascript文件。我也使用usemin和ngmin。

当我在没有grunt并发的情况下使用uglify时,我会得到以下日志输出的预期结果:

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: {
        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与uglify和usemin/ngmin同时使用?

usemin在运行中向uglify添加任务,但无论出于何种原因,它们在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中配置它。。