Skip to content

Instantly share code, notes, and snippets.

@sapphiriq
Created December 18, 2012 09:07
Show Gist options
  • Select an option

  • Save sapphiriq/4326419 to your computer and use it in GitHub Desktop.

Select an option

Save sapphiriq/4326419 to your computer and use it in GitHub Desktop.

Revisions

  1. sapphiriq revised this gist Dec 18, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Gruntfile.coffee
    Original file line number Diff line number Diff line change
    @@ -140,7 +140,7 @@ module.exports = (grunt) ->
    grunt.registerTask 'default', ['copy:build', 'jade', 'coffee', 'less:build']
    grunt.registerTask 'build', 'default'

    grunt.registerTask 'release', ['copy:build', 'jade', 'coffee', 'copy:release', 'less:release', 'concat', 'uglify']
    grunt.registerTask 'release', ['build', 'copy:release', 'less:release', 'concat', 'uglify']

    connect = require 'connect'

  2. sapphiriq revised this gist Dec 18, 2012. 3 changed files with 69 additions and 34 deletions.
    97 changes: 65 additions & 32 deletions Gruntfile.coffee
    Original file line number Diff line number Diff line change
    @@ -7,24 +7,27 @@ module.exports = (grunt) ->

    meta:
    version: '0.1.0',
    banner: '/*! Sapphiriq - v<%= meta.version %> - ' +
    banner: '/*!\n * Sapphiriq - v<%= meta.version %> - ' +
    '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
    '* http://sapphiriq.ru/\n' +
    '* Copyright (c) <%= grunt.template.today("yyyy") %> */\n'
    ' * http://sapphiriq.ru/\n' +
    ' * Copyright (c) <%= grunt.template.today("yyyy") %>\n */\n'

    clean:
    build: ['build']
    release: ['release']

    copy:
    img:
    build:
    files:
    'build/img/': 'src/img/**'
    js:
    'build/js/': 'src/vendor/js/**'
    # 'build/css/': 'src/vendor/css/**'
    release:
    files:
    'build/js/': 'src/vendor/js/**'
    # css:
    # files:
    # 'build/css/': 'src/vendor/css/**'
    'release/': 'build/**'

    jade:
    development:
    build:
    options:
    pretty: true
    files: grunt.file.expandMapping(["src/jade/*.jade"], "build",
    @@ -34,65 +37,93 @@ module.exports = (grunt) ->


    coffee:
    compile:
    build:
    files: grunt.file.expandMapping(["src/coffee/**/*.coffee"], "build/js/",
    rename: (destBase, destPath) ->
    destBase + destPath.replace(/src\/coffee/, '').replace(/\.coffee$/, ".js")
    )

    less:
    development:
    build:
    options:
    compress: false

    files:
    "build/css/style.css": "src/less/style.less"

    production:
    release:
    options:
    compress: true

    files:
    "build/css/style.css": "src/less/style.less"
    "release/css/style.css": "src/less/style.less"


    concat:
    dist:
    options:
    banner: '<%= meta.banner %>'
    src: 'build/js/app.js'
    dest: 'build/js/app.js'
    # lint: {
    # files: ['grunt.js', 'src/**/*.js', 'test/**/*.js']
    # },

    # qunit: {
    # files: ['test/**/*.html']
    # },

    watch:
    coffee:
    files: ['src/coffee/**/*.coffee']
    tasks: ['coffee', 'concat', 'uglify']
    tasks: ['coffee:build']

    less:
    files: ['src/less/**/*.less']
    tasks: 'less:development'
    tasks: 'less:build'

    jade:
    files: ['src/jade/**/*.jade']
    tasks: 'jade:development'
    tasks: 'jade:build'

    js:
    files: ['src/vendor/js/**/*.js']
    tasks: 'copy'
    tasks: 'copy:build'

    css:
    files: ['src/vendor/css/**/*.css']
    tasks: 'copy'
    tasks: 'copy:build'

    img:
    files: ['src/img/**/*']
    tasks: 'copy:img'
    tasks: 'copy:build'

    # jshint: {
    # options: {
    # curly: true,
    # eqeqeq: true,
    # immed: true,
    # latedef: true,
    # newcap: true,
    # noarg: true,
    # sub: true,
    # undef: true,
    # boss: true,
    # eqnull: true,
    # browser: true
    # },
    # globals: {
    # jQuery: true
    # }
    # },

    concat:
    dist:
    options:
    banner: '<%= meta.banner %>'
    src: 'release/js/app.js'
    dest: 'release/js/app.js'

    uglify:
    app:
    options:
    banner: '<%= meta.banner %>'
    files:
    'build/js/app.min.js': ['<%= concat.dist.dest %>']
    'release/js/app.js': ['<%= concat.dist.dest %>']


    grunt.loadNpmTasks 'grunt-contrib-jade'
    @@ -103,15 +134,17 @@ module.exports = (grunt) ->
    grunt.loadNpmTasks 'grunt-contrib-concat'
    grunt.loadNpmTasks 'grunt-contrib-uglify'
    grunt.loadNpmTasks 'grunt-contrib-copy'
    grunt.loadNpmTasks 'grunt-contrib-clean'

    # Default task.
    grunt.registerTask 'default', ['copy', 'jade', 'less:development', 'coffee']

    grunt.registerTask 'production', ['copy', 'jade', 'less:production', 'coffee', 'concat', 'uglify']
    grunt.registerTask 'default', ['copy:build', 'jade', 'coffee', 'less:build']
    grunt.registerTask 'build', 'default'

    grunt.registerTask 'release', ['copy:build', 'jade', 'coffee', 'copy:release', 'less:release', 'concat', 'uglify']

    connect = require 'connect'

    grunt.registerTask "server", "Start a static web server with file watcher.", ->
    grunt.registerTask "server", "Start a custom static web server.", ->
    grunt.log.writeln "Starting static web server in \"build\" on port 8080."
    connect(connect.static("build")).listen 8080
    grunt.task.run('default')
    1 change: 1 addition & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -4,6 +4,7 @@
    |-- build
    |-- src
    | |-- coffee
    | |-- img
    | |-- jade
    | |-- less
    | `-- vendor
    5 changes: 3 additions & 2 deletions package.json
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,8 @@
    {
    "name": "Sapphiriq",
    "version": "0.0.0",
    "description": "# Sapphiriq.ru",
    "main": "grunt.js",
    "description": "# Sapphiriq",
    "main": "Gruntfile.coffee",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    @@ -20,6 +20,7 @@
    "grunt-contrib-watch": "~0.2.0",
    "grunt-contrib-concat": "~0.1.1",
    "grunt-contrib-copy": "~0.3.2",
    "grunt-contrib-clean": "~0.4.0a",
    "connect": "~2.7.1"
    }
    }
  3. sapphiriq revised this gist Dec 18, 2012. 1 changed file with 8 additions and 1 deletion.
    9 changes: 8 additions & 1 deletion Gruntfile.coffee
    Original file line number Diff line number Diff line change
    @@ -13,7 +13,10 @@ module.exports = (grunt) ->
    '* Copyright (c) <%= grunt.template.today("yyyy") %> */\n'

    copy:
    js:
    img:
    files:
    'build/img/': 'src/img/**'
    js:
    files:
    'build/js/': 'src/vendor/js/**'
    # css:
    @@ -79,6 +82,10 @@ module.exports = (grunt) ->
    css:
    files: ['src/vendor/css/**/*.css']
    tasks: 'copy'

    img:
    files: ['src/img/**/*']
    tasks: 'copy:img'

    uglify:
    app:
  4. sapphiriq created this gist Dec 18, 2012.
    111 changes: 111 additions & 0 deletions Gruntfile.coffee
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,111 @@
    #global module:false

    module.exports = (grunt) ->

    # Project configuration.
    grunt.initConfig

    meta:
    version: '0.1.0',
    banner: '/*! Sapphiriq - v<%= meta.version %> - ' +
    '<%= grunt.template.today("yyyy-mm-dd") %>\n' +
    '* http://sapphiriq.ru/\n' +
    '* Copyright (c) <%= grunt.template.today("yyyy") %> */\n'

    copy:
    js:
    files:
    'build/js/': 'src/vendor/js/**'
    # css:
    # files:
    # 'build/css/': 'src/vendor/css/**'

    jade:
    development:
    options:
    pretty: true
    files: grunt.file.expandMapping(["src/jade/*.jade"], "build",
    rename: (destBase, destPath) ->
    destBase + destPath.replace(/src\/jade/, '').replace(/\.jade$/, ".html")
    )


    coffee:
    compile:
    files: grunt.file.expandMapping(["src/coffee/**/*.coffee"], "build/js/",
    rename: (destBase, destPath) ->
    destBase + destPath.replace(/src\/coffee/, '').replace(/\.coffee$/, ".js")
    )

    less:
    development:
    options:
    compress: false

    files:
    "build/css/style.css": "src/less/style.less"

    production:
    options:
    compress: true

    files:
    "build/css/style.css": "src/less/style.less"

    concat:
    dist:
    options:
    banner: '<%= meta.banner %>'
    src: 'build/js/app.js'
    dest: 'build/js/app.js'

    watch:
    coffee:
    files: ['src/coffee/**/*.coffee']
    tasks: ['coffee', 'concat', 'uglify']

    less:
    files: ['src/less/**/*.less']
    tasks: 'less:development'

    jade:
    files: ['src/jade/**/*.jade']
    tasks: 'jade:development'

    js:
    files: ['src/vendor/js/**/*.js']
    tasks: 'copy'

    css:
    files: ['src/vendor/css/**/*.css']
    tasks: 'copy'

    uglify:
    app:
    options:
    banner: '<%= meta.banner %>'
    files:
    'build/js/app.min.js': ['<%= concat.dist.dest %>']


    grunt.loadNpmTasks 'grunt-contrib-jade'
    grunt.loadNpmTasks 'grunt-contrib-less'
    grunt.loadNpmTasks 'grunt-contrib-coffee'

    grunt.loadNpmTasks 'grunt-contrib-watch'
    grunt.loadNpmTasks 'grunt-contrib-concat'
    grunt.loadNpmTasks 'grunt-contrib-uglify'
    grunt.loadNpmTasks 'grunt-contrib-copy'

    # Default task.
    grunt.registerTask 'default', ['copy', 'jade', 'less:development', 'coffee']

    grunt.registerTask 'production', ['copy', 'jade', 'less:production', 'coffee', 'concat', 'uglify']

    connect = require 'connect'

    grunt.registerTask "server", "Start a static web server with file watcher.", ->
    grunt.log.writeln "Starting static web server in \"build\" on port 8080."
    connect(connect.static("build")).listen 8080
    grunt.task.run('default')
    grunt.task.run('watch')
    13 changes: 13 additions & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    # Structure

    project_root
    |-- build
    |-- src
    | |-- coffee
    | |-- jade
    | |-- less
    | `-- vendor
    | |-- css
    | `-- js
    |-- Gruntfile.js
    `-- package.json
    25 changes: 25 additions & 0 deletions package.json
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    {
    "name": "Sapphiriq",
    "version": "0.0.0",
    "description": "# Sapphiriq.ru",
    "main": "grunt.js",
    "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
    },
    "repository": "",
    "author": "",
    "license": "BSD",
    "devDependencies": {
    "grunt": "~0.4.0",
    "grunt-contrib-jshint": "~0.1.0",
    "grunt-contrib-nodeunit": "~0.1.0",
    "grunt-contrib-less": "~0.3.2",
    "grunt-contrib-coffee": "~0.3.2",
    "grunt-contrib-jade": "~0.3.1",
    "grunt-contrib-uglify": "~0.1.0",
    "grunt-contrib-watch": "~0.2.0",
    "grunt-contrib-concat": "~0.1.1",
    "grunt-contrib-copy": "~0.3.2",
    "connect": "~2.7.1"
    }
    }