如何连接文件夹中的所有JS文件并在GruntJS中使用SASS?

时间:2015-10-12 08:43:49

标签: gruntjs

我现在已经尝试了一段时间了。每次我在终端中运行grunt时都会出现以下错误:

User$: grunt
Loading "Gruntfile.js" tasks...ERROR
>> SyntaxError: Unexpected identifier
Warning: Task "default" not found. Use --force to continue.

Aborted due to warnings.

这是我的GruntFile.js

module.exports = function (grunt) { 

    grunt.initConfig({

        sass: {
            dist: {
                files: {
                    'css/css.css' : 'css/css.scss'
                }
            }
        },
        concat: {
            js: {
                src:['js/*.js'],
                dest: 'js/js.js'
            }
        },
        watch: {
            css: {
                files: '**/*.scss',
                tasks: ['sass']
            }
            js: {
                files: ['js/*.js'],
                tasks: ['concat:js']
            },
        }

    });

    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-sass');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.registerTask('default', ['watch', 'concat']);

};

我的基本目录:

/js/jquery.js
/js/angular.js
/js/js.js
/css/settings.scss
/css/slider.scss
/css/css.css

1 个答案:

答案 0 :(得分:1)

您在watch:css目标后缺少逗号(第23行)。

此外,请注意,监视任务永远不会退出,因此您希望默认任务最后运行:

grunt.registerTask('default', ['concat', 'watch']);

最后,您应该从监视文件列表中排除连接的js,以避免循环。

module.exports = function (grunt) { 
  grunt.initConfig({
    sass: {
        dist: {
            files: {
                'css/css.css' : 'css/css.scss'
            }
        }
    },
    concat: {
        js: {
            src:['js/*.js', '!js/js.js'],
            dest: 'js/js.js'
        }
    },
    watch: {
        css: {
            files: 'css/*.scss',
            tasks: ['sass']
        },
        js: {
            files: ['js/*.js', '!js/js.js'],
            tasks: ['concat:js']
        },
    }
  });

  grunt.loadNpmTasks('grunt-contrib-concat');
  grunt.loadNpmTasks('grunt-contrib-sass');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['concat', 'watch']);
};