为什么Grunt在丑化时会忽略jQuery?

时间:2015-07-13 19:13:35

标签: javascript gruntjs grunt-contrib-uglify

我无法弄清楚为什么在运行我的Grunt任务时会忽略jQuery。这是它的样子:

module.exports = function (grunt) {
    // Configuration
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        // Concat
        concat: {
            js: {
                src: [
                    'js/vendor/jquery.js',
                    'js/app/graph.js',
                ],
                dest: 'app/build/js/app.js'
            }
        },
        // Uglify
        uglify: {
            options: {
                preserveComments: false
            },
            my_target: {
                files: {
                    'app/build/js/app.min.js': [
                            'app/build/js/app.js'
                        ]
                }
            }
        });
};

当我检查app.js时,jQuery是其中的一部分,但不在app.min.js中。所以我怀疑Uglify部分出了问题。

3 个答案:

答案 0 :(得分:1)

github.com/gruntjs/grunt-contrib-clean这不是绝对必要的,如果您已经获得了jQuery,则应该包括jQuery。在包含的网站上进行测试,以确保它不仅仅隐藏在丑化代码中的某个位置。

答案 1 :(得分:0)

我不认为你的语法是对的,请尝试改为:

    uglify: {
        development: {
            options: {
                preserveComments: false
            },
            files: {
                'app/build/js/app.min.js': 'app/build/js/app.js'
            }
    }

并将其命名为:grunt.registerTask('default', ['concat', 'uglify:development']);

答案 2 :(得分:0)

不确定这是否会有所帮助,或者两者之间是否存在任何差异,但您可以尝试设置类似于concat配置的uglify配置......例如:

module.exports = function (grunt) {
    // Configuration
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        // Concat
        concat: {
            js: {
                src: [
                    'js/vendor/jquery.js',
                    'js/app/graph.js',
                ],
                dest: 'app/build/js/app.js'
            }
        },
        // Uglify
        uglify: {
            options: {
                preserveComments: false
            },
            js: {
                src: ['app/build/js/app.js'],
                dest: ['app/build/js/app.min.js']
            }
        }
    });
};

另外,我认为你错过了额外的支架