lib/generators/half_pipe/templates/Gruntfile.js in half-pipe-0.2.4 vs lib/generators/half_pipe/templates/Gruntfile.js in half-pipe-0.3.0.alpha.1
- old
+ new
@@ -1,65 +1,38 @@
/*global module:false*/
module.exports = function(grunt) {
+ require("load-grunt-tasks")(grunt);
+ grunt.loadNpmTasks('grunt-connect-proxy');
+ function config(name){
+ return require("./tasks/options/" + name);
+ }
+
// Project configuration.
grunt.initConfig({
// Metadata.
pkg: grunt.file.readJSON('package.json'),
-
- jshint: {
- options: {
- jshintrc: '.jshintrc'
- },
- gruntfile: {
- src: 'Gruntfile.js'
- }
- },
-
- sass: {
- options: {
- style: 'expanded',
- require: ['./config/initializers/sass']
- },
- 'tmp/styles/main.css': [
- 'app/styles/main.scss'
- ]
- },
-
- cssmin: {
- 'public/styles/main.css': 'tmp/styles/main.css'
- },
-
- requirejs: {
- scripts: {
- options: {
- almond: true,
- baseUrl: "app/scripts",
- mainConfigFile: "app/scripts/application.js",
- name: "<%= main_module_name %>",
- out: "public/scripts/application.js",
- wrap: true
- }
- }
- },
-
- clean: ['public/scripts/', 'public/styles', 'tmp/']
-
+ dirs: grunt.file.readJSON('config/half-pipe.json'),
+ bowerOpts: grunt.file.readJSON('.bowerrc'),
+ jshint: config("jshint"),
+ sass: config("sass"),
+ cssmin: config("cssmin"),
+ requirejs: config("requirejs"),
+ connect: config("connect"),
+ copy: config("copy"),
+ watch: config("watch"),
+ rails: config("rails"),
+ clean: ['<%%= dirs.tmp %>']
});
- // These plugins provide necessary tasks.
- grunt.loadNpmTasks('grunt-contrib-jshint');
- grunt.loadNpmTasks('grunt-contrib-sass');
- grunt.loadNpmTasks('grunt-contrib-cssmin');
- grunt.loadNpmTasks('grunt-contrib-copy');
- grunt.loadNpmTasks('grunt-contrib-clean');
- grunt.loadNpmTasks('grunt-requirejs');
-
// Default task.
- grunt.registerTask('default', 'build');
+ grunt.registerTask('default', 'build:debug');
- // Build task.
- grunt.registerTask('build', ['jshint', 'sass', 'cssmin', 'requirejs']);
+ grunt.registerTask('build:debug', ['copy:prepare', 'sass:debug', 'copy:stage']);
+ grunt.registerTask('build:public', ['copy:prepare', 'sass:public', 'copy:stage', 'requirejs:public', 'copy:public']);
+
+ grunt.registerTask('server:debug', ['build:debug', 'configureProxies', 'connect:debug', 'rails:server:start', 'watch']);
+ grunt.registerTask('server:public', ['build:public', 'configureProxies', 'connect:public:keepalive']);
};