javascript - Grunt uglify 任务变为空白/空闲

标签 javascript angularjs gruntjs grunt-contrib-uglify

我对 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 命令。它成功地丑化并缩小了我的代码。那么除了我上面所做的之外,还有什么需要做的吗?

最佳答案

but when I run `grunt uglify' there is no response, the cursor goes to another line and remains so for hours.

问题:

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

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

如何修复它:

创建 Alias Task 时使用grunt.registerTask()避免将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 注释)

关于javascript - Grunt uglify 任务变为空白/空闲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424680/

相关文章:

angularjs - SVG 未加载 Angular 2

javascript - 使用 Angular 导航时设置变量

javascript - 尝试使用 gruntjs 设置 Phaser 和 Typescript

node.js - Grunt Imagemin 没有优化图像

javascript - offsetX、offsetY 和 pageX、pageY 有什么区别?

javascript - 在页面加载前修改 location.hash

javascript - 如何在 div 的顶部和底部获得水平滚动条?

javascript - AngularJS 警报服务 : fading out ng-repeat item

javascript - 表格中多个闪烁的文本

javascript - 如何在 Grunt 中使用 stylelint?