Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

yeoman, grunt - how add a banner to my generated files

I created a mobile application with the yeoman mobile-generator.
I'am very new to grunt and yeoman, but it's really awesome stuff!
Does anyone know what I have to do add a banner to my generated files?

   meta: {
        version: '0.1.0',
        banner: '/*! PROJECT_NAME - v<%= meta.version %> - ' +
            '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
            '* http://PROJECT_WEBSITE/\n' +
            '* Copyright (c) <%= grunt.template.today("yyyy") %> ' +
            'MyName; Licensed MIT */'
    },

Where I have to use this. I have tried something like this, but does not affect.

    usemin: {
        options: {
            dirs: ['<%= yeoman.dist %>']
        },
        html: ['<%= yeoman.dist %>/{,*/}*.html'],
        css: ['<banner:meta.banner>', '<%= yeoman.dist %>/styles/{,*/}*.css']
    },

...

    cssmin: {
        dist: {
            files: {
                '<%= yeoman.dist %>/styles/main.css': [
                    '<banner:meta.banner>', 
                    '.tmp/styles/{,*/}*.css',
                    '<%= yeoman.app %>/styles/{,*/}*.css'
                ]
            }
        }
    },
like image 741
chris Avatar asked Dec 28 '25 16:12

chris


1 Answers

Banners go in the options object:

cssmin: {
    dist: {
        options: {
            banner: '<%= meta.banner %>'
        },
        files: {
            '<%= yeoman.dist %>/styles/main.css': [
                '.tmp/styles/{,*/}*.css',
                '<%= yeoman.app %>/styles/{,*/}*.css'
            ]
        }
    }
}

Hat tip: I'd also use the metadata in package.json, that way you save duplicating it in your Gruntfile, and you can also reuse that banner config for other projects without having to change it.

grunt.initConfig({
    // pkg: grunt.file.read('package.json'),
    pkg: grunt.file.readJSON('package.json'),
    banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
            '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
            '* http://<%= pkg.homepage %>/\n' +
            '* Copyright (c) <%= grunt.template.today("yyyy") %> ' +
            '<%= pkg.author.name %>; Licensed MIT */',
    cssmin: {
        dist: {
            options: {
                banner: '<%= banner %>'
            },
            files: {
                '<%= yeoman.dist %>/styles/main.css': [
                    '.tmp/styles/{,*/}*.css',
                    '<%= yeoman.app %>/styles/{,*/}*.css'
                ]
            }
        }
    }
    // rest of your config...
});

And in package.json:

{
    "name":                         "project name",
    "version":                      "0.1.0",
    "homepage":                     "https://stackoverflow.com",
    "author": {
        "name":                     "your name",
        "email":                    "your email",
        "url":                      "your website"
    }
    // devDependencies, etc
}
like image 58
Ben Avatar answered Jan 01 '26 00:01

Ben



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!