mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-26 19:44:00 +03:00
f79314ea2b
* Livereload server. * Auto compile scss files. * Heroku python buildpack needs to be specified explicitly to avoid auto detections of the app as a `Node` app due to presence of `Package.json`.
102 lines
2.3 KiB
JavaScript
102 lines
2.3 KiB
JavaScript
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',
|
|
scss: this.app + '/static/scss',
|
|
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.scss %>/**/*.{scss,sass}'],
|
|
tasks: ['compass:server']
|
|
},
|
|
livereload: {
|
|
files: [
|
|
'<%= paths.js %>/**/*.js',
|
|
'<%= paths.scss %>/**/*.{scss,sass}',
|
|
'<%= paths.app %>/**/*.html'
|
|
],
|
|
options: {
|
|
spawn: false,
|
|
livereload: true,
|
|
},
|
|
},
|
|
},
|
|
|
|
// see: https://github.com/gruntjs/grunt-contrib-compass
|
|
compass: {
|
|
options: {
|
|
sassDir: '<%= paths.scss %>',
|
|
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'
|
|
]);
|
|
};
|