【问题标题】:Beginner at using Grunt need some advice for my Gruntfile.js使用 Grunt 的初学者需要一些关于我的 Gruntfile.js 的建议
【发布时间】:2014-08-30 14:50:17
【问题描述】:

我刚开始建立自己的咕噜声,这就是我想出的。我只是想知道是否有人可以查看它并给我一些提示/建议。

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,我知道它远非完美。

【问题讨论】:

    标签: javascript coffeescript gruntjs livereload


    【解决方案1】:

    我会推荐load-grunt-tasks 以减少主 Gruntfile.js 的复杂性。使用起来非常简单。它允许您将 Gruntfile.js 拆分为多个较小的 JS 文件,存储在单独的 Grunt 文件夹中,例如:

    /root
      /Grunt
        cssmin.js
        coffee.js
        watch.js
        ...
    

    然后你要加载到你的任务中的主要 Gruntfile.js 很简单,例如:

    module.exports = function (grunt) {
      require('load-grunt-tasks')(grunt);
    }
    

    所有这些都与名为aliases.yaml 的 YAML 文件保存在一起,该文件位于 Grunt 文件夹中,其中详细说明了 Grunt 命令及其相关进程。所以在 YAML 文件中:

    lint:
      - clear
      - jshint
      - jscs
    

    您可以运行grunt lint,它会运行这些任务。

    我发现它 a) 是一个完整的救生员,b) 帮助我从一个完全不同的层面理解 Grunt。

    I've made an example repo for you to help explain what I'm talking about。希望对大家有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-19
      • 2021-12-11
      • 2021-12-02
      • 1970-01-01
      • 2014-01-19
      相关资源
      最近更新 更多