【问题标题】:Grunt uglify task goes blank/idleGrunt uglify 任务变为空白/空闲
【发布时间】:2017-05-16 10:24:36
【问题描述】:

我对 JS 中的任务运行器非常陌生,这是我第一次尝试使用 GruntJS。在我的 Gruntfile.js 中,我保留了几个任务,例如 jshintcssmin 等。我可以从命令行运行它们,但是当我运行“grunt uglify”时没有响应,光标转到另一行并持续数小时。也没有显示错误消息。

以下是我的相关代码,我尝试了各种 uglify 配置,因为我看到不同的用户提供了不同的属性集

//uglify:{
        //    options: {
        //        mangle : {
        //            except : ['jQuery', 'angular']
        //        },
        //        compress: {
        //            drop_console : true
        //        },
        //        banner: '*****Minified file for Pricing Plan*****',
        //        footer: '*********File ends**********',
        //        preserveComments: false
        //    },
        //    my_target:{
        //        options: {
        //            beautify: true,
        //            files: {
        //                'scripts/pp.min.js': ['scripts/pp.js']
        //            }
        //        }
        //    }
        //},
        uglify: {
            options: {
                banner: '*****Minified file for Pricing Plan*****'
            },
            dist: {
                src: 'scripts/pp.js',
                dest: 'scripts/pp.min.js'
            }
        },


grunt.loadNpmTasks('grunt-contrib-uglify');

grunt.registerTask('uglify', ['uglify']);

在命令行我正在运行grunt uglify

有人可以建议这里有什么问题以及纠正它的方法吗?

如果需要:它是一个 Angular1.x.x 项目

编辑:我尝试安装 uglifyJs 并运行 uglifyjs 命令。它成功地丑化并缩小了我的代码。那么除了我上面的内容之外,还有什么需要做的吗?

【问题讨论】:

    标签: javascript angularjs gruntjs grunt-contrib-uglify


    【解决方案1】:

    但是当我运行 `grunt uglify' 没有响应时,光标会转到另一行并保持数小时。

    问题:

    我认为这个问题与您注册uglify 任务的方式有关。下面这行代码:

    grunt.registerTask('uglify', ['uglify']); //<-- Issue is here.
    

    如何解决:

    使用grunt.registerTask() 创建Alias Task 时,避免将taskName 命名为与taskList 数组中定义的任何项目/任务相同。

    grunt.registerTask('minify', ['uglify']); //<-- Correct.
    

    注意: 虽然在上面的示例代码中我已将 taskName 更改为 minify,但它可以是您喜欢的任何有效名称。只需确保您选择的 taskName 不作为 taskList 数组中的项目之一存在即可。

    您现在通过 CLI 运行修改后的注册 uglify 任务,如下所示:

    $ grunt minify

    Gruntfile.js

    这里是修改后的Gruntfile.js

    module.exports = function(grunt) {
    
        grunt.initConfig({
            uglify: {
                options: {
                    banner: '/*****Minified file for Pricing Plan*****/'
    
                    // ... <-- Your other options
                },
                dist: {
                    src: 'scripts/pp.js',
                    dest: 'scripts/pp.min.js'
                }
            }
        });
    
        grunt.loadNpmTasks('grunt-contrib-uglify');
        grunt.registerTask('minify', ['uglify']);
    };
    

    注意:还在横幅字符串中添加了正斜杠,以便在结果文件中生成有效的 JavaScript 注释)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多