Autoinsert script tags (or other filebased tags) in an html file
This plugin requires Grunt ~0.4.x
When the task is run the destination file(s) is updated with script tags pointing to all the source files. The reason this plugin was built was to automate the process of inserting script tags when building large web apps.
npm install grunt-sails-linker --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-sails-linker');
In your project's Gruntfile, add a section named sails-linker
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
'sails-linker': {
defaultOptions: {
options: {
startTag: '<!--SCRIPTS-->',
endTag: '<!--SCRIPTS END-->',
fileTmpl: '<script src="%s"></script>',
appRoot: 'app/',
viewSpecificInsertion: true, //setting this to false will revert to the default behaviour
globalInsertionScriptsPath: 'dependencies' //folder containing global dependencies
},
files: {
// Target-specific file lists and/or options go here.
'app/index.html': ['app/scripts/**/*.js']
},
},
},
})
Type: String
Default value: '<!--SCRIPTS-->'
Script tags are places between the startTag and endTag
Type: String
Default value: '<!--SCRIPTS END-->'
Script tags are places between the startTag and endTag
Type: String
Default value: '<script src="%s"></script>'
The template used to insert the reference to the script files.
Type: Function
Default value: undefined
Optional function which takes the filepath
as argument and returns a String
inserted as reference to the script file. Note that option.fileRef
takes precedence over option.fileTmpl
.
Type: String
Default value: ''
The root of the application. Script links are relative from this folder.
Type: Boolean
Default value: false
Reference files using a relative url.
Type: Boolean
Default value: false
Enables insertion of the scripts/styles/templates etc. for the target view. If value is true, only files under the folder with same name as the view will be inserted e.g. js files under the folder 'test' will be inserted in 'test.ejs' only.
Type: String
Default value: undefined
Works in conjunction with options.viewSpecificInsertion to override insertion of files at the specified path to be inserted in all matching files.