在Windows上,Grunt中找不到“concat”任务。

4

我的Grunt文件:

module.exports = function(grunt) {

grunt.initConfig({

    pkg: grunt.file.readJSON('package.json'),

    concat: {
        js: {
            src: ['http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', 'js/bootstrap.min.js', 'js/messages.fr.js', 'js/parsley.min.js'],
            dest: 'js/prod/concat.js'
        },
        css: {
            src: ['css/bootstrap.min.css', 'css/bootstrap-responsive.min.css', 'css/app.css'],
            dest: 'css/prod/concat.css'
        }
    },

    min: {
        js: {
            src: 'js/prod/concat.js',
            dest: 'js/prod/main.min.js'
        }
    },

    cssmin: {
        minify: {
            expand: true,
            src: ['css/prod/concat.css', '!*.min.css'],
            dest: 'css/prod/',
            ext: '.min.css'
        }
    }

});

grunt.loadNpmTasks('grunt-contrib-imagemin', 'grunt-contrib-cssmin');

// Default task.
grunt.registerTask('default', ['concat', 'min', 'cssmin']);

无论我尝试什么(删除任务等),grunt都会给我一个相同的消息“警告:未找到任务“concat””。如果我删除concat:“警告:未找到任务“min”。

我不明白发生了什么。

4个回答

7

这件事情刚刚发生在我身上。重要的是,在你使用 npm 安装了grunt任务之后,确保在Gruntfile中也注册了它。

因此,你的gruntfile文件结尾应该有类似于下面的loadNpmTasks行:

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

// Default task.
grunt.registerTask('default', [ 'concat', 'uglify']);

4

Gruntjs的旧版本包含一些默认任务,例如concat和min。从Grunt 0.4开始,您必须自己添加所有任务(插件)。我认为您可以使用像grunt-contrib-uglify这样的任务来进行缩小和连接。

请确保您正在运行最新版本的Grunt。许多在线教程提到Grunt 0.3,但是自那以后发生了很多变化。例如,提到grunt.js(Grunt 0.3)而不是Gruntfile.js(0.4)的教程在很多方面都已经过时了。


2

我知道这个问题已经很老了,但我也遇到了这个错误,并发现它是由于没有将任何源文件(在gruntfile.js中指定的concat.dist.src)放在它们应该在的位置引起的。我把文件放在grunt期望它们的位置,然后它就正常工作了。


1

我曾经遇到同样的问题,但是我尝试了以下方法后,问题得到了解决。 在你的node.js命令提示符中尝试运行以下命令:

npm install grunt-contrib-concat --save-dev


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接