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.
267 lines
6.4 KiB
267 lines
6.4 KiB
/** |
|
* 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'); |
|
};
|
|
|