Produces JavaScripts files from template.
npm install grunt-jslocator~0.4.5
shell
npm install grunt-jslocator --save-dev
`
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js
grunt.loadNpmTasks('grunt-jslocator');
`
The "jslocator" task
$3
In your project's Gruntfile, add a section named jslocator to the data object passed into grunt.initConfig().
`js
grunt.initConfig({
jslocator: {
default_options:{
options: {
// Task-specific options go here.
fileName: 'myDefaultLocalJS',
source: 'test/fixtures/source.json',
template: 'test/fixtures/template.js',
open_varMark: '<%=',
close_varMark: '%>'
}
}
}
});
`
$3
#### options.fileName
Type: String
Default value: 'myDefaultLocalJS'
A string value that is used to do something with whatever.
#### options.source
Type: JSON
Default value: 'test/fixtures/source.json'
A file containing JSON formated data.
#### options.template
Type: String
Default value: 'test/fixtures/template.js'
A file containing the js template with variables.
#### options.open_varMark
Type: String
Default value: '<%='
Mark to denote variables to be replaced with data from source file. This goes at the beggining of the text to be replaced. You can use another mark of your preference.
#### options.close_varMark
Type: String
Default value: '%>'
Mark to denote variables to be replaced with data from source file. This goes at the end of the text to be replaced. You can use another mark of your preference.
$3
#### Default Options
In this example, the pluging will produce two JavaScripts: myDefaultLocalJS.en.js and myDefaultLocalJS.fr.js. Each file contains the template from the file template.js but the variables teplaced with correspondent value stored on the source file source.json. Theses variables can be easy identified because they are surrounded by the open and close marks.
`js
grunt.initConfig({
jslocator: {
default_options:{
options: {
fileName: 'myDefaultLocalJS',
source: 'test/fixtures/source.json',
template: 'test/fixtures/template.js',
open_varMark: '<%=',
close_varMark: '%>'
}
}
}
});
`
#### Source file (JSON format) source.json
`json
{
"locales": ["en", "fr"]
,"vars":{
"param1":{
"en": "param #1"
,"fr": "1r parametre"
}
,"param2":{
"en": "param #2"
,"fr": "2e parametre"
}
,"param3":{
"en": "param #3"
,"fr": "3e parametre"
}
}
}
`
#### Template file (JavaScript format) template.js
`js
/*
TEMPLATE
*/
function foo(param1, param2){
var msg = "";
if (!isNaN(param1)){
msg += "param1 <%=param1%>";
}
if (!isNaN(param2)){
msg += "param2 <%=param2%>";
}
alert(msg + "<%=param3%>");
return;
}
``