You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
268 lines
6.4 KiB
268 lines
6.4 KiB
10 years ago
|
/**
|
||
|
* Autoinsert script tags (or other filebased tags) in an html file.
|
||
|
*
|
||
|
* ---------------------------------------------------------------
|
||
|
*
|
||
|
* Automatically inject <script> tags for javascript files and <link> tags
|
||
|
* for css files. Also automatically links an output file containing precompiled
|
||
|
* templates using a <script> tag.
|
||
|
*
|
||
|
* For usage docs see:
|
||
|
* https://github.com/Zolmeister/grunt-sails-linker
|
||
|
*
|
||
|
*/
|
||
|
module.exports = function(grunt) {
|
||
|
|
||
|
grunt.config.set('sails-linker', {
|
||
|
devJs: {
|
||
|
options: {
|
||
|
startTag: '<!--SCRIPTS-->',
|
||
|
endTag: '<!--SCRIPTS END-->',
|
||
|
fileTmpl: '<script src="%s"></script>',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
files: {
|
||
|
'.tmp/public/**/*.html': require('../pipeline').jsFilesToInject,
|
||
|
'views/**/*.html': require('../pipeline').jsFilesToInject,
|
||
|
'views/**/*.ejs': require('../pipeline').jsFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devJsRelative: {
|
||
|
options: {
|
||
|
startTag: '<!--SCRIPTS-->',
|
||
|
endTag: '<!--SCRIPTS END-->',
|
||
|
fileTmpl: '<script src="%s"></script>',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
files: {
|
||
|
'.tmp/public/**/*.html': require('../pipeline').jsFilesToInject,
|
||
|
'views/**/*.html': require('../pipeline').jsFilesToInject,
|
||
|
'views/**/*.ejs': require('../pipeline').jsFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodJs: {
|
||
|
options: {
|
||
|
startTag: '<!--SCRIPTS-->',
|
||
|
endTag: '<!--SCRIPTS END-->',
|
||
|
fileTmpl: '<script src="%s"></script>',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
files: {
|
||
|
'.tmp/public/**/*.html': ['.tmp/public/min/production.min.js'],
|
||
|
'views/**/*.html': ['.tmp/public/min/production.min.js'],
|
||
|
'views/**/*.ejs': ['.tmp/public/min/production.min.js']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodJsRelative: {
|
||
|
options: {
|
||
|
startTag: '<!--SCRIPTS-->',
|
||
|
endTag: '<!--SCRIPTS END-->',
|
||
|
fileTmpl: '<script src="%s"></script>',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
files: {
|
||
|
'.tmp/public/**/*.html': ['.tmp/public/min/production.min.js'],
|
||
|
'views/**/*.html': ['.tmp/public/min/production.min.js'],
|
||
|
'views/**/*.ejs': ['.tmp/public/min/production.min.js']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devStyles: {
|
||
|
options: {
|
||
|
startTag: '<!--STYLES-->',
|
||
|
endTag: '<!--STYLES END-->',
|
||
|
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
|
||
|
files: {
|
||
|
'.tmp/public/**/*.html': require('../pipeline').cssFilesToInject,
|
||
|
'views/**/*.html': require('../pipeline').cssFilesToInject,
|
||
|
'views/**/*.ejs': require('../pipeline').cssFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devStylesRelative: {
|
||
|
options: {
|
||
|
startTag: '<!--STYLES-->',
|
||
|
endTag: '<!--STYLES END-->',
|
||
|
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
|
||
|
files: {
|
||
|
'.tmp/public/**/*.html': require('../pipeline').cssFilesToInject,
|
||
|
'views/**/*.html': require('../pipeline').cssFilesToInject,
|
||
|
'views/**/*.ejs': require('../pipeline').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.min.css'],
|
||
|
'views/**/*.html': ['.tmp/public/min/production.min.css'],
|
||
|
'views/**/*.ejs': ['.tmp/public/min/production.min.css']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodStylesRelative: {
|
||
|
options: {
|
||
|
startTag: '<!--STYLES-->',
|
||
|
endTag: '<!--STYLES END-->',
|
||
|
fileTmpl: '<link rel="stylesheet" href="%s">',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
files: {
|
||
|
'.tmp/public/index.html': ['.tmp/public/min/production.min.css'],
|
||
|
'views/**/*.html': ['.tmp/public/min/production.min.css'],
|
||
|
'views/**/*.ejs': ['.tmp/public/min/production.min.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']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devJsJade: {
|
||
|
options: {
|
||
|
startTag: '// SCRIPTS',
|
||
|
endTag: '// SCRIPTS END',
|
||
|
fileTmpl: 'script(src="%s")',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
files: {
|
||
|
'views/**/*.jade': require('../pipeline').jsFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devJsRelativeJade: {
|
||
|
options: {
|
||
|
startTag: '// SCRIPTS',
|
||
|
endTag: '// SCRIPTS END',
|
||
|
fileTmpl: 'script(src="%s")',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
files: {
|
||
|
'views/**/*.jade': require('../pipeline').jsFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodJsJade: {
|
||
|
options: {
|
||
|
startTag: '// SCRIPTS',
|
||
|
endTag: '// SCRIPTS END',
|
||
|
fileTmpl: 'script(src="%s")',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
files: {
|
||
|
'views/**/*.jade': ['.tmp/public/min/production.min.js']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodJsRelativeJade: {
|
||
|
options: {
|
||
|
startTag: '// SCRIPTS',
|
||
|
endTag: '// SCRIPTS END',
|
||
|
fileTmpl: 'script(src="%s")',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
files: {
|
||
|
'views/**/*.jade': ['.tmp/public/min/production.min.js']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devStylesJade: {
|
||
|
options: {
|
||
|
startTag: '// STYLES',
|
||
|
endTag: '// STYLES END',
|
||
|
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
|
||
|
files: {
|
||
|
'views/**/*.jade': require('../pipeline').cssFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
devStylesRelativeJade: {
|
||
|
options: {
|
||
|
startTag: '// STYLES',
|
||
|
endTag: '// STYLES END',
|
||
|
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
|
||
|
files: {
|
||
|
'views/**/*.jade': require('../pipeline').cssFilesToInject
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodStylesJade: {
|
||
|
options: {
|
||
|
startTag: '// STYLES',
|
||
|
endTag: '// STYLES END',
|
||
|
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||
|
appRoot: '.tmp/public'
|
||
|
},
|
||
|
files: {
|
||
|
'views/**/*.jade': ['.tmp/public/min/production.min.css']
|
||
|
}
|
||
|
},
|
||
|
|
||
|
prodStylesRelativeJade: {
|
||
|
options: {
|
||
|
startTag: '// STYLES',
|
||
|
endTag: '// STYLES END',
|
||
|
fileTmpl: 'link(rel="stylesheet", href="%s")',
|
||
|
appRoot: '.tmp/public',
|
||
|
relative: true
|
||
|
},
|
||
|
files: {
|
||
|
'views/**/*.jade': ['.tmp/public/min/production.min.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']
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
grunt.loadNpmTasks('grunt-sails-linker');
|
||
|
};
|