Javascript 使用Grunt的初学者需要一些关于我的GrunFile.js的建议

Javascript 使用Grunt的初学者需要一些关于我的GrunFile.js的建议,javascript,coffeescript,gruntjs,livereload,Javascript,Coffeescript,Gruntjs,Livereload,我刚开始建立自己的grunt,这就是我想到的。我只是想知道是否有人可以看一下,给我一些提示/建议 module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), coffee: { compile: { expand: true, flatt

我刚开始建立自己的grunt,这就是我想到的。我只是想知道是否有人可以看一下,给我一些提示/建议

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        coffee: {
            compile: {
                expand: true,
                flatten: true,
                cwd: 'src/coffee',
                src: ['*.coffee'],
                dest: 'src/js/',
                ext: '.js'
            }
        },
        concat: {
            css: {
                src: [
                    'src/css/*'
                ],
                dest: 'css/.css'
            },
            js: {
                src: [
                    'src/js/*'
                ],
                dest: 'js/package.js'
            }
        },
        cssmin: {
            css: {
                src: 'css/package.css',
                dest: 'css/package.min.css'
            }
        },
        uglify: {
            js: {
                files: {
                    'js/package.min.js': ['js/package.js']
                }
            }
        },
        watch: {
            aspx: {
                files: ['*.aspx', '*.master']
            },
            css: {
                files: ['src/css/*'],
                tasks: ['concat:css', 'cssmin']
            },
            coffee: {
                files: ['src/coffee/*'],
                tasks: ['coffee:compile']
            },
            js: {
                files: ['src/js/*'],
                tasks: ['concat:js', 'uglify']
            },
            livereload: {
                files: ['*.aspx', '*.master', 'css/*.css', 'js/*.js'],
                options: { nospawn: true, livereload: true }
            }
       }
    });
    grunt.loadNpmTasks('grunt-contrib-concat');
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-coffee');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.registerTask('default', ['coffee:compile','concat:css', 'cssmin:css', 'concat:js', 'uglify:js', 'watch']);
};
它确实可以工作,并且可以完美地重新加载和编译。我只是想知道是否有更有效的方法来处理这个问题。作为我的第一个gruntfile,我知道它还远远不够完美。

为了降低主gruntfile.js的复杂性,我推荐它。它的使用非常简单。它允许您将Gruntfile.js拆分为若干较小的js文件,这些文件存储在单独的Grunt文件夹中,例如:

/root
  /Grunt
    cssmin.js
    coffee.js
    watch.js
    ...
module.exports = function (grunt) {
  require('load-grunt-tasks')(grunt);
}
然后,要加载到任务中的主Gruntfile.js很简单,例如:

/root
  /Grunt
    cssmin.js
    coffee.js
    watch.js
    ...
module.exports = function (grunt) {
  require('load-grunt-tasks')(grunt);
}
它与名为
alias.YAML
的YAML文件一起保存在Grunt文件夹中,该文件夹详细介绍了Grunt命令及其相关过程。因此,在YAML文件中使用以下内容:

lint:
  - clear
  - jshint
  - jscs
您可以运行
grunt lint
,它将运行这些任务

我发现它a)是一个完全的救星,b)帮助我在一个完全不同的层面上理解了Grunt

。我希望这能有所帮助