Update and rename Gruntfile.js to Gruntfile.coffee

Why? It's more pythonic in nature and grunt supports it by default!

Why not? Not everyone knows it! but it's no excuse to not use it. 
It's simple to understand/learn.
This commit is contained in:
Saurabh Kumar 2014-03-29 14:03:35 +05:30
parent e407be9152
commit a510d91460
2 changed files with 78 additions and 101 deletions

View File

@ -0,0 +1,78 @@
module.exports = (grunt) ->
appConfig = grunt.file.readJSON("package.json")
# Load grunt tasks automatically
# see: https://github.com/sindresorhus/load-grunt-tasks
require("load-grunt-tasks")(grunt)
# Time how long tasks take. Can help when optimizing build times
# see: https://npmjs.org/package/time-grunt
require("time-grunt")(grunt)
pathsConfig = (appName) ->
@app = appName or appConfig.name
app: @app
templates: @app + "/templates"
css: @app + "/static/css"
sass: @app + "/static/sass"
fonts: @app + "/static/fonts"
images: @app + "/static/images"
js: @app + "/static/js"
manageScript: @app + "/manage.py"
grunt.initConfig
paths: pathsConfig()
pkg: appConfig
# see: https://github.com/gruntjs/grunt-contrib-watch
watch:
gruntfile:
files: ["Gruntfile.coffee"]
compass:
files: ["<%= paths.sass %>/**/*.{scss,sass}"]
tasks: ["compass:server"]
livereload:
files: [
"<%= paths.js %>/**/*.js"
"<%= paths.sass %>/**/*.{scss,sass}"
"<%= paths.app %>/**/*.html"
]
options:
spawn: false
livereload: true
# see: https://github.com/gruntjs/grunt-contrib-compass
compass:
options:
sassDir: "<%= paths.sass %>"
cssDir: "<%= paths.css %>"
fontsDir: "<%= paths.fonts %>"
imagesDir: "<%= paths.images %>"
relativeAssets: false
assetCacheBuster: false
raw: "Sass::Script::Number.precision = 10\n"
dist:
options:
environment: "production"
server:
options: {}
# see: https://npmjs.org/package/grunt-bg-shell
bgShell:
_defaults:
bg: true
runDjango:
cmd: "python <%= paths.manageScript %> runserver"
grunt.registerTask "serve", [
"bgShell:runDjango"
"watch"
]
grunt.registerTask "build", ["compass:dist"]
grunt.registerTask "default", ["build"]
return

View File

@ -1,101 +0,0 @@
module.exports = function (grunt) {
var appConfig = grunt.file.readJSON('package.json');
// Load grunt tasks automatically
// see: https://github.com/sindresorhus/load-grunt-tasks
require('load-grunt-tasks')(grunt);
// Time how long tasks take. Can help when optimizing build times
// see: https://npmjs.org/package/time-grunt
require('time-grunt')(grunt);
var pathsConfig = function (appName) {
this.app = appName || appConfig.name;
return {
app: this.app,
templates: this.app + '/templates',
css: this.app + '/static/css',
sass: this.app + '/static/sass',
fonts: this.app + '/static/fonts',
images: this.app + '/static/images',
js: this.app + '/static/js',
manageScript: this.app + '/manage.py'
}
};
grunt.initConfig({
paths: pathsConfig(),
pkg: appConfig,
// see: https://github.com/gruntjs/grunt-contrib-watch
watch: {
gruntfile: {
files: ['Gruntfile.js']
},
compass: {
files: ['<%= paths.sass %>/**/*.{scss,sass}'],
tasks: ['compass:server']
},
livereload: {
files: [
'<%= paths.js %>/**/*.js',
'<%= paths.sass %>/**/*.{scss,sass}',
'<%= paths.app %>/**/*.html'
],
options: {
spawn: false,
livereload: true,
},
},
},
// see: https://github.com/gruntjs/grunt-contrib-compass
compass: {
options: {
sassDir: '<%= paths.sass %>',
cssDir: '<%= paths.css %>',
fontsDir: '<%= paths.fonts %>',
imagesDir: '<%= paths.images %>',
relativeAssets: false,
assetCacheBuster: false,
raw: 'Sass::Script::Number.precision = 10\n'
},
dist: {
options: {
environment: 'production'
}
},
server: {
options: {
// debugInfo: true
}
}
},
// see: https://npmjs.org/package/grunt-bg-shell
bgShell: {
_defaults: {
bg: true
},
runDjango: {
cmd: 'python <%= paths.manageScript %> runserver'
}
}
});
grunt.registerTask('serve', [
'bgShell:runDjango',
'watch'
]);
grunt.registerTask('build', [
'compass:dist'
]);
grunt.registerTask('default', [
'build'
]);
};