Add modified gruntfile.js and tasks
This commit is contained in:
454
Gruntfile.js
454
Gruntfile.js
@@ -1,416 +1,59 @@
|
||||
/**
|
||||
* Gruntfile
|
||||
*
|
||||
* If you created your Sails app with `sails new foo --linker`,
|
||||
* the following files will be automatically injected (in order)
|
||||
* into the EJS and HTML files in your `views` and `assets` folders.
|
||||
*
|
||||
* At the top part of this file, you'll find a few of the most commonly
|
||||
* configured options, but Sails' integration with Grunt is also fully
|
||||
* customizable. If you'd like to work with your assets differently
|
||||
* you can change this file to do anything you like!
|
||||
*
|
||||
* More information on using Grunt to work with static assets:
|
||||
* http://gruntjs.com/configuring-tasks
|
||||
*/
|
||||
module.exports = function(grunt) {
|
||||
// load config functio
|
||||
function loadConfig(path) {
|
||||
var glob = require('glob');
|
||||
var object = {};
|
||||
var key;
|
||||
|
||||
module.exports = function (grunt) {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* CSS files to inject in order
|
||||
* (uses Grunt-style wildcard/glob/splat expressions)
|
||||
*
|
||||
* By default, Sails also supports LESS in development and production.
|
||||
* To use SASS/SCSS, Stylus, etc., edit the `sails-linker:devStyles` task
|
||||
* below for more options. For this to work, you may need to install new
|
||||
* dependencies, e.g. `npm install grunt-contrib-sass`
|
||||
*/
|
||||
|
||||
var cssFilesToInject = [
|
||||
'linker/**/*.css'
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Javascript files to inject in order
|
||||
* (uses Grunt-style wildcard/glob/splat expressions)
|
||||
*
|
||||
* To use client-side CoffeeScript, TypeScript, etc., edit the
|
||||
* `sails-linker:devJs` task below for more options.
|
||||
*/
|
||||
|
||||
var jsFilesToInject = [
|
||||
|
||||
// Below, as a demonstration, you'll see the built-in dependencies
|
||||
// linked in the proper order order
|
||||
|
||||
// Bring in the socket.io client
|
||||
'linker/js/socket.io.js',
|
||||
|
||||
// then beef it up with some convenience logic for talking to Sails.js
|
||||
'linker/js/sails.io.js',
|
||||
|
||||
// A simpler boilerplate library for getting you up and running w/ an
|
||||
// automatic listener for incoming messages from Socket.io.
|
||||
'linker/js/app.js',
|
||||
|
||||
// *-> put other dependencies here <-*
|
||||
|
||||
// All of the rest of your app scripts imported here
|
||||
'linker/**/*.js'
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* Client-side HTML templates are injected using the sources below
|
||||
* The ordering of these templates shouldn't matter.
|
||||
* (uses Grunt-style wildcard/glob/splat expressions)
|
||||
*
|
||||
* By default, Sails uses JST templates and precompiles them into
|
||||
* functions for you. If you want to use jade, handlebars, dust, etc.,
|
||||
* edit the relevant sections below.
|
||||
*/
|
||||
|
||||
var templateFilesToInject = [
|
||||
'linker/**/*.html'
|
||||
];
|
||||
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// DANGER:
|
||||
//
|
||||
// With great power comes great responsibility.
|
||||
//
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
// Modify css file injection paths to use
|
||||
cssFilesToInject = cssFilesToInject.map(function (path) {
|
||||
return '.tmp/public/' + path;
|
||||
glob.sync('*', {
|
||||
cwd: path
|
||||
}).forEach(function(option) {
|
||||
key = option.replace(/.js$/, '');
|
||||
object[key] = require(path + option)(config);
|
||||
});
|
||||
|
||||
// Modify js file injection paths to use
|
||||
jsFilesToInject = jsFilesToInject.map(function (path) {
|
||||
return '.tmp/public/' + path;
|
||||
});
|
||||
return object;
|
||||
}
|
||||
|
||||
|
||||
templateFilesToInject = templateFilesToInject.map(function (path) {
|
||||
return 'assets/' + path;
|
||||
});
|
||||
|
||||
|
||||
// Get path to core grunt dependencies from Sails
|
||||
var depsPath = grunt.option('gdsrc') || 'node_modules/sails/node_modules';
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-clean/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-copy/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-concat/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-sails-linker/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-jst/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-watch/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-uglify/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-cssmin/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-less/tasks');
|
||||
grunt.loadTasks(depsPath + '/grunt-contrib-coffee/tasks');
|
||||
require('load-grunt-tasks')(grunt);
|
||||
grunt.loadTasks('tasks');
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
var config = {
|
||||
pkg: grunt.file.readJSON('package.json'),
|
||||
env: process.env,
|
||||
cssFilesToInject: [
|
||||
'linker/**/*.css'
|
||||
].map(function(path) {
|
||||
return '.tmp/public/' + path;
|
||||
}),
|
||||
jsFilesToInject: [
|
||||
'linker/js/vendor/socket.io.js',
|
||||
'linker/js/vendor/sails.io.js',
|
||||
'linker/js/vendor/jquery-2.1.0.js',
|
||||
'linker/js/vendor/underscore.js',
|
||||
'linker/js/vender/json2.js',
|
||||
'linker/js/vendor/backbone.js',
|
||||
'linker/js/vendor/bootstrap.js',
|
||||
'linker/js/app.js',
|
||||
'linker/js/models/*.js',
|
||||
'linker/js/collections/*.js',
|
||||
'linker/js/views/*.js',
|
||||
'linker/**/*.js'
|
||||
].map(function(path) {
|
||||
return '.tmp/public/' + path;
|
||||
}),
|
||||
templateFilesToInject: [
|
||||
'linker/**/*.html'
|
||||
].map(function(path) {
|
||||
return 'assets/' + path;
|
||||
})
|
||||
};
|
||||
|
||||
copy: {
|
||||
dev: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd: './assets',
|
||||
src: ['**/*.!(coffee)'],
|
||||
dest: '.tmp/public'
|
||||
}
|
||||
]
|
||||
},
|
||||
build: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd: '.tmp/public',
|
||||
src: ['**/*'],
|
||||
dest: 'www'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
grunt.util._.extend(config, loadConfig('./tasks/options/'));
|
||||
grunt.initConfig(config);
|
||||
|
||||
clean: {
|
||||
dev: ['.tmp/public/**'],
|
||||
build: ['www']
|
||||
},
|
||||
|
||||
jst: {
|
||||
dev: {
|
||||
|
||||
// To use other sorts of templates, specify the regexp below:
|
||||
// options: {
|
||||
// templateSettings: {
|
||||
// interpolate: /\{\{(.+?)\}\}/g
|
||||
// }
|
||||
// },
|
||||
|
||||
files: {
|
||||
'.tmp/public/jst.js': templateFilesToInject
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
less: {
|
||||
dev: {
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'assets/styles/',
|
||||
src: ['*.less'],
|
||||
dest: '.tmp/public/styles/',
|
||||
ext: '.css'
|
||||
}, {
|
||||
expand: true,
|
||||
cwd: 'assets/linker/styles/',
|
||||
src: ['*.less'],
|
||||
dest: '.tmp/public/linker/styles/',
|
||||
ext: '.css'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
coffee: {
|
||||
dev: {
|
||||
options:{
|
||||
bare:true
|
||||
},
|
||||
files: [
|
||||
{
|
||||
expand: true,
|
||||
cwd: 'assets/js/',
|
||||
src: ['**/*.coffee'],
|
||||
dest: '.tmp/public/js/',
|
||||
ext: '.js'
|
||||
}, {
|
||||
expand: true,
|
||||
cwd: 'assets/linker/js/',
|
||||
src: ['**/*.coffee'],
|
||||
dest: '.tmp/public/linker/js/',
|
||||
ext: '.js'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
concat: {
|
||||
js: {
|
||||
src: jsFilesToInject,
|
||||
dest: '.tmp/public/concat/production.js'
|
||||
},
|
||||
css: {
|
||||
src: cssFilesToInject,
|
||||
dest: '.tmp/public/concat/production.css'
|
||||
}
|
||||
},
|
||||
|
||||
uglify: {
|
||||
dist: {
|
||||
src: ['.tmp/public/concat/production.js'],
|
||||
dest: '.tmp/public/min/production.js'
|
||||
}
|
||||
},
|
||||
|
||||
cssmin: {
|
||||
dist: {
|
||||
src: ['.tmp/public/concat/production.css'],
|
||||
dest: '.tmp/public/min/production.css'
|
||||
}
|
||||
},
|
||||
|
||||
'sails-linker': {
|
||||
|
||||
devJs: {
|
||||
options: {
|
||||
startTag: '<!--SCRIPTS-->',
|
||||
endTag: '<!--SCRIPTS END-->',
|
||||
fileTmpl: '<script src="%s"></script>',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/**/*.html': jsFilesToInject,
|
||||
'views/**/*.html': jsFilesToInject,
|
||||
'views/**/*.ejs': jsFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodJs: {
|
||||
options: {
|
||||
startTag: '<!--SCRIPTS-->',
|
||||
endTag: '<!--SCRIPTS END-->',
|
||||
fileTmpl: '<script src="%s"></script>',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/**/*.html': ['.tmp/public/min/production.js'],
|
||||
'views/**/*.html': ['.tmp/public/min/production.js'],
|
||||
'views/**/*.ejs': ['.tmp/public/min/production.js']
|
||||
}
|
||||
},
|
||||
|
||||
devStyles: {
|
||||
options: {
|
||||
startTag: '<!--STYLES-->',
|
||||
endTag: '<!--STYLES END-->',
|
||||
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
|
||||
// cssFilesToInject defined up top
|
||||
files: {
|
||||
'.tmp/public/**/*.html': cssFilesToInject,
|
||||
'views/**/*.html': cssFilesToInject,
|
||||
'views/**/*.ejs': cssFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodStyles: {
|
||||
options: {
|
||||
startTag: '<!--STYLES-->',
|
||||
endTag: '<!--STYLES END-->',
|
||||
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/index.html': ['.tmp/public/min/production.css'],
|
||||
'views/**/*.html': ['.tmp/public/min/production.css'],
|
||||
'views/**/*.ejs': ['.tmp/public/min/production.css']
|
||||
}
|
||||
},
|
||||
|
||||
// Bring in JST template object
|
||||
devTpl: {
|
||||
options: {
|
||||
startTag: '<!--TEMPLATES-->',
|
||||
endTag: '<!--TEMPLATES END-->',
|
||||
fileTmpl: '<script type="text/javascript" src="%s"></script>',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/index.html': ['.tmp/public/jst.js'],
|
||||
'views/**/*.html': ['.tmp/public/jst.js'],
|
||||
'views/**/*.ejs': ['.tmp/public/jst.js']
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/*******************************************
|
||||
* Jade linkers (TODO: clean this up)
|
||||
*******************************************/
|
||||
|
||||
devJsJADE: {
|
||||
options: {
|
||||
startTag: '// SCRIPTS',
|
||||
endTag: '// SCRIPTS END',
|
||||
fileTmpl: 'script(type="text/javascript", src="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': jsFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodJsJADE: {
|
||||
options: {
|
||||
startTag: '// SCRIPTS',
|
||||
endTag: '// SCRIPTS END',
|
||||
fileTmpl: 'script(type="text/javascript", src="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': ['.tmp/public/min/production.js']
|
||||
}
|
||||
},
|
||||
|
||||
devStylesJADE: {
|
||||
options: {
|
||||
startTag: '// STYLES',
|
||||
endTag: '// STYLES END',
|
||||
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': cssFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodStylesJADE: {
|
||||
options: {
|
||||
startTag: '// STYLES',
|
||||
endTag: '// STYLES END',
|
||||
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': ['.tmp/public/min/production.css']
|
||||
}
|
||||
},
|
||||
|
||||
// Bring in JST template object
|
||||
devTplJADE: {
|
||||
options: {
|
||||
startTag: '// TEMPLATES',
|
||||
endTag: '// TEMPLATES END',
|
||||
fileTmpl: 'script(type="text/javascript", src="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': ['.tmp/public/jst.js']
|
||||
}
|
||||
}
|
||||
/************************************
|
||||
* Jade linker end
|
||||
************************************/
|
||||
},
|
||||
|
||||
watch: {
|
||||
api: {
|
||||
|
||||
// API files to watch:
|
||||
files: ['api/**/*']
|
||||
},
|
||||
assets: {
|
||||
|
||||
// Assets to watch:
|
||||
files: ['assets/**/*'],
|
||||
|
||||
// When assets are changed:
|
||||
tasks: ['compileAssets', 'linkAssets']
|
||||
}
|
||||
}
|
||||
});
|
||||
// task aliases
|
||||
|
||||
// When Sails is lifted:
|
||||
grunt.registerTask('default', [
|
||||
@@ -422,13 +65,13 @@ module.exports = function (grunt) {
|
||||
grunt.registerTask('compileAssets', [
|
||||
'clean:dev',
|
||||
'jst:dev',
|
||||
'jade:templates',
|
||||
'less:dev',
|
||||
'copy:dev',
|
||||
'coffee:dev'
|
||||
]);
|
||||
|
||||
grunt.registerTask('linkAssets', [
|
||||
|
||||
// Update link/script/template references in `assets` index.html
|
||||
'sails-linker:devJs',
|
||||
'sails-linker:devStyles',
|
||||
@@ -438,7 +81,6 @@ module.exports = function (grunt) {
|
||||
'sails-linker:devTplJADE'
|
||||
]);
|
||||
|
||||
|
||||
// Build the assets into a web accessible folder.
|
||||
// (handy for phone gap apps, chrome extensions, etc.)
|
||||
grunt.registerTask('build', [
|
||||
|
||||
44
tasks/load-asv.js
Normal file
44
tasks/load-asv.js
Normal file
@@ -0,0 +1,44 @@
|
||||
module.exports = function(grunt) {
|
||||
grunt.registerTask('load-asv', "Loads the ASV verses", function() {
|
||||
var done = this.async();
|
||||
var path = '../dbs/t_asv.json';
|
||||
var json = grunt.file.readJSON(path).resultset.row;
|
||||
var MongoClient = require('mongodb').MongoClient;
|
||||
|
||||
MongoClient.connect('mongodb://localhost/BibleDev', function(err, db) {
|
||||
if(err) throw err;
|
||||
|
||||
var versesColl = db.collection('verse');
|
||||
grunt.log.writeln('Got collection: ' + versesColl);
|
||||
grunt.log.writeln('Going to process ' + json.length + ' verses.');
|
||||
|
||||
for(var i = 0; i < json.length; i++) {
|
||||
var verse = {};
|
||||
for(var k = 0; k < json[i].field.length; k++) {
|
||||
var value = json[i].field[k]['_'];
|
||||
var key = json[i].field[k]['$']['name'];
|
||||
|
||||
if(key == 'c') key = 'chapter';
|
||||
else if (key == 'v') key = 'verse';
|
||||
else if (key == 'b') key = 'book';
|
||||
else if (key == 't') key = 'text';
|
||||
else if (key == 'id') key = 'reference';
|
||||
|
||||
verse[key] = value;
|
||||
verse['number'] = i;
|
||||
}
|
||||
|
||||
versesColl.insert(verse, function(err, results) {
|
||||
if(err) throw err;
|
||||
});
|
||||
}
|
||||
|
||||
versesColl.count(function(err, count) {
|
||||
if(err) throw err;
|
||||
grunt.log.writeln('Wrote ' + count + ' verse(s).');
|
||||
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
7
tasks/options/clean.js
Normal file
7
tasks/options/clean.js
Normal file
@@ -0,0 +1,7 @@
|
||||
// clean
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dev: ['.tmp/public/**'],
|
||||
build: ['www']
|
||||
};
|
||||
};
|
||||
23
tasks/options/coffee.js
Normal file
23
tasks/options/coffee.js
Normal file
@@ -0,0 +1,23 @@
|
||||
// coffee
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dev: {
|
||||
options: {
|
||||
bare: true
|
||||
},
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: 'assets/js/',
|
||||
src: ['**/*.coffee'],
|
||||
dest: '.tmp/public/js/',
|
||||
ext: '.js'
|
||||
}, {
|
||||
expand: true,
|
||||
cwd: 'assets/linker/js/',
|
||||
src: ['**/*.coffee'],
|
||||
dest: '.tmp/public/linker/js/',
|
||||
ext: '.js'
|
||||
}]
|
||||
}
|
||||
};
|
||||
};
|
||||
13
tasks/options/concat.js
Normal file
13
tasks/options/concat.js
Normal file
@@ -0,0 +1,13 @@
|
||||
// concat
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
js: {
|
||||
src: config.jsFilesToInject,
|
||||
dest: '.tmp/public/concat/production.js'
|
||||
},
|
||||
css: {
|
||||
src: config.cssFilesToInject,
|
||||
dest: '.tmp/public/concat/production.css'
|
||||
}
|
||||
};
|
||||
};
|
||||
21
tasks/options/copy.js
Normal file
21
tasks/options/copy.js
Normal file
@@ -0,0 +1,21 @@
|
||||
// copy
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dev: {
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: './assets',
|
||||
src: ['**/*.!(coffee|jade)'],
|
||||
dest: '.tmp/public'
|
||||
}]
|
||||
},
|
||||
build: {
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: '.tmp/public',
|
||||
src: ['**/*'],
|
||||
dest: 'www'
|
||||
}]
|
||||
}
|
||||
};
|
||||
};
|
||||
9
tasks/options/cssmin.js
Normal file
9
tasks/options/cssmin.js
Normal file
@@ -0,0 +1,9 @@
|
||||
// cssmin
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dist: {
|
||||
src: ['.tmp/public/concat/production.css'],
|
||||
dest: '.tmp/public/min/production.css'
|
||||
}
|
||||
};
|
||||
};
|
||||
14
tasks/options/jade.js
Normal file
14
tasks/options/jade.js
Normal file
@@ -0,0 +1,14 @@
|
||||
// jade
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
templates: {
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: './assets/linker/templates/',
|
||||
src: ['*.jade'],
|
||||
dest: './assets/linker/templates/',
|
||||
ext: '.html'
|
||||
}]
|
||||
}
|
||||
};
|
||||
};
|
||||
17
tasks/options/jst.js
Normal file
17
tasks/options/jst.js
Normal file
@@ -0,0 +1,17 @@
|
||||
// jst
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dev: {
|
||||
options: {
|
||||
namespace: 'App.Templates',
|
||||
templateSettings: {
|
||||
interpolate: /\{\{(.+?)\}\}/g
|
||||
}
|
||||
},
|
||||
|
||||
files: {
|
||||
'.tmp/public/templates.js': config.templateFilesToInject
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
20
tasks/options/less.js
Normal file
20
tasks/options/less.js
Normal file
@@ -0,0 +1,20 @@
|
||||
// less
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dev: {
|
||||
files: [{
|
||||
expand: true,
|
||||
cwd: 'assets/styles/',
|
||||
src: ['*.less'],
|
||||
dest: '.tmp/public/styles/',
|
||||
ext: '.css'
|
||||
}, {
|
||||
expand: true,
|
||||
cwd: 'assets/linker/styles/',
|
||||
src: ['*.less'],
|
||||
dest: '.tmp/public/linker/styles/',
|
||||
ext: '.css'
|
||||
}]
|
||||
}
|
||||
};
|
||||
};
|
||||
141
tasks/options/sails-linker.js
Normal file
141
tasks/options/sails-linker.js
Normal file
@@ -0,0 +1,141 @@
|
||||
// sails-linker
|
||||
module.exports = function(config) { return {
|
||||
devJs: {
|
||||
options: {
|
||||
startTag: '<!--SCRIPTS-->',
|
||||
endTag: '<!--SCRIPTS END-->',
|
||||
fileTmpl: '<script src="%s"></script>',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/**/*.html': config.jsFilesToInject,
|
||||
'views/**/*.html': config.jsFilesToInject,
|
||||
'views/**/*.ejs': config.jsFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodJs: {
|
||||
options: {
|
||||
startTag: '<!--SCRIPTS-->',
|
||||
endTag: '<!--SCRIPTS END-->',
|
||||
fileTmpl: '<script src="%s"></script>',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/**/*.html': ['.tmp/public/min/production.js'],
|
||||
'views/**/*.html': ['.tmp/public/min/production.js'],
|
||||
'views/**/*.ejs': ['.tmp/public/min/production.js']
|
||||
}
|
||||
},
|
||||
|
||||
devStyles: {
|
||||
options: {
|
||||
startTag: '<!--STYLES-->',
|
||||
endTag: '<!--STYLES END-->',
|
||||
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
|
||||
// config.cssFilesToInject defined up top
|
||||
files: {
|
||||
'.tmp/public/**/*.html': config.cssFilesToInject,
|
||||
'views/**/*.html': config.cssFilesToInject,
|
||||
'views/**/*.ejs': config.cssFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodStyles: {
|
||||
options: {
|
||||
startTag: '<!--STYLES-->',
|
||||
endTag: '<!--STYLES END-->',
|
||||
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/index.html': ['.tmp/public/min/production.css'],
|
||||
'views/**/*.html': ['.tmp/public/min/production.css'],
|
||||
'views/**/*.ejs': ['.tmp/public/min/production.css']
|
||||
}
|
||||
},
|
||||
|
||||
// Bring in JST template object
|
||||
devTpl: {
|
||||
options: {
|
||||
startTag: '<!--TEMPLATES-->',
|
||||
endTag: '<!--TEMPLATES END-->',
|
||||
fileTmpl: '<script type="text/javascript" src="%s"></script>',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'.tmp/public/index.html': ['.tmp/public/templates.js'],
|
||||
'views/**/*.html': ['.tmp/public/templates.js'],
|
||||
'views/**/*.ejs': ['.tmp/public/templates.js']
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/*******************************************
|
||||
* Jade linkers (TODO: clean this up)
|
||||
*******************************************/
|
||||
|
||||
devJsJADE: {
|
||||
options: {
|
||||
startTag: '// SCRIPTS',
|
||||
endTag: '// SCRIPTS END',
|
||||
fileTmpl: 'script(type="text/javascript", src="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': config.jsFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodJsJADE: {
|
||||
options: {
|
||||
startTag: '// SCRIPTS',
|
||||
endTag: '// SCRIPTS END',
|
||||
fileTmpl: 'script(type="text/javascript", src="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': ['.tmp/public/min/production.js']
|
||||
}
|
||||
},
|
||||
|
||||
devStylesJADE: {
|
||||
options: {
|
||||
startTag: '// STYLES',
|
||||
endTag: '// STYLES END',
|
||||
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': config.cssFilesToInject
|
||||
}
|
||||
},
|
||||
|
||||
prodStylesJADE: {
|
||||
options: {
|
||||
startTag: '// STYLES',
|
||||
endTag: '// STYLES END',
|
||||
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': ['.tmp/public/min/production.css']
|
||||
}
|
||||
},
|
||||
|
||||
// Bring in JST template object
|
||||
devTplJADE: {
|
||||
options: {
|
||||
startTag: '// TEMPLATES',
|
||||
endTag: '// TEMPLATES END',
|
||||
fileTmpl: 'script(type="text/javascript", src="%s")',
|
||||
appRoot: '.tmp/public'
|
||||
},
|
||||
files: {
|
||||
'views/**/*.jade': ['.tmp/public/templates.js']
|
||||
}
|
||||
}
|
||||
};};
|
||||
9
tasks/options/uglify.js
Normal file
9
tasks/options/uglify.js
Normal file
@@ -0,0 +1,9 @@
|
||||
// uglify
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
dist: {
|
||||
src: ['.tmp/public/concat/production.js'],
|
||||
dest: '.tmp/public/min/production.js'
|
||||
}
|
||||
};
|
||||
};
|
||||
17
tasks/options/watch.js
Normal file
17
tasks/options/watch.js
Normal file
@@ -0,0 +1,17 @@
|
||||
// watch
|
||||
module.exports = function(config) {
|
||||
return {
|
||||
api: {
|
||||
// API files to watch:
|
||||
files: ['api/**/*']
|
||||
},
|
||||
assets: {
|
||||
|
||||
// Assets to watch:
|
||||
files: ['assets/**/*'],
|
||||
|
||||
// When assets are changed:
|
||||
tasks: ['compileAssets', 'linkAssets']
|
||||
}
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user