mirror of
https://github.com/cookiecutter/cookiecutter-django.git
synced 2024-11-27 03:54:02 +03:00
117 lines
2.8 KiB
JavaScript
117 lines
2.8 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',
|
|
sass: this.app + '/static/sass',
|
|
fonts: this.app + '/static/fonts',
|
|
images: this.app + '/static/images',
|
|
js: this.app + '/static/js',
|
|
manageScript: 'manage.py',
|
|
{% if cookiecutter.use_maildump=="y" -%}mailserverpid: 'mailserver.pid',{%- endif %}
|
|
}
|
|
};
|
|
|
|
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'
|
|
},
|
|
{% if cookiecutter.use_maildump == "y" -%}runMailDump: {
|
|
cmd: 'maildump -p <%= paths.mailserverpid %>'
|
|
},
|
|
stopMailDump: {
|
|
cmd: 'maildump -p <%= paths.mailserverpid %> --stop'
|
|
},{%- endif %}
|
|
}
|
|
});
|
|
|
|
grunt.registerTask('serve', [
|
|
'bgShell:runDjango',
|
|
'watch'
|
|
]);
|
|
|
|
grunt.registerTask('build', [
|
|
'compass:dist'
|
|
]);
|
|
|
|
grunt.registerTask('default', [
|
|
'build'
|
|
]);
|
|
{% if cookiecutter.use_maildump == "y" -%}
|
|
grunt.registerTask('start-email-server', [
|
|
'bgShell:runMailDump'
|
|
]);
|
|
|
|
grunt.registerTask('stop-email-server', [
|
|
'bgShell:stopMailDump'
|
|
]);{%- endif %}
|
|
};
|