Reads the contents of JSON/HTML/Other files and appends them as variables in Javascript files. Supports simple and advanced appending.
This plugin requires Grunt ~0.4.1
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-files-to-javascript-variables --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-files-to-javascript-variables');
If you need to build Javascript variables from (a lot of) files (e.g. HTML files) you can use this task. The tasks reads the files as strings and appends them to a defined property of a Javascript variable.
You need to specify the folder of your files to be searched recursively. The file names have the format:
(<inputFilePrefix>)(indexString)property.<inputFileExtension>
You can specify your file prefix or file extension. The property part of the file name will be used as the Javascript property of the given Javascript object. The variable of your Javascript object can be access either by simply refering to it, or by index (if it is an array). In case of index access, you should enable the 'useIndexes' option and define the 'variableIndexMap'. See the example in the source code for more information.
In your project's Gruntfile, add a section named filesToJavascript
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
filesToJavascript: {
default_options: {
options: {
inputFilesFolder : 'test/data/matrix',
inputFilePrefix : 'indicator-',
useIndexes : true,
variableIndexMap : {
'a1-' : 0,
'b1-' : 1,
'c1-' : 2,
'c2-' : 3,
'c3-' : 4
},
outputBaseFile : 'test/data/gwoe-indicators-data-base.js',
outputBaseFileVariable : 'indicators',
outputFile : 'test/data/gwoe-indicators-data.js'
}
}
},
})
Type: String
Required
The folder containing recursively all the files to be appended.
Type: String
Default value: ``
If the files have prefix, you can set it.
Type: String
Default value: any file extension
If you add a file extension, then only these files will be appended.
Type: boolean
Default value: false
Whether to add the Javascript property to an array index. If set to 'true' you should specify also the 'variableIndexMap' property.
Type: String
Default value: undefined
A map of key and values. The key is the part of the file name. The value is the index to which the Javascript variable will be added. See the configuration above for an example.
Type: boolean
Default value: false
Removes the white space from the input files.
Note: JSON comments should NOT be written like // comment
, but instead like /* comment */
Type: String
Required
The path to the Javascript base file. The base file should contain the 'outputBaseFileVariable' to which the properties will be added.
Type: String
Required
The variable in the 'outputBaseFile' to which the properties will be added.
Type: String
Default Value: ``
You can define a suffix for the Javascript variable. For example if you have as variable 'indicators', useIndexes is true and the suffix is '.content', then the file contents will be added to the Javascript property 'indicators[index]..content'.
Type: String
Required
The Javascript output file containing the base file plus the added Javascript properties. This file will be overwritten every time the task is run and should not be edited manually!
See the source code. Clone and run 'grunt --debug'
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
- 0.2.4 - change JSON minifying dependency, log message on file save.
- 0.2.3 - option
removeWhiteSpaces
renamedshouldMinify
- 0.2.2 - new boolean option
removeWhiteSpaces
- 0.2.1 - added support for JSON files.
- 0.1.9 - renamed task to filesToJavascript.
- 0.1.8 - improved debug statements and commit of templates.
- 0.1.7 - removed unneeded debugging statements.
- 0.1.6 - added support for configuration without indexes. See the 'createJSTemplates' grunt configuration and test/templates.
- 0.1.5 - fixed fileNamePropertyOnly bug.
- 0.1.4 - added a new option outputBaseFileVariableSuffix.
- 0.1.3 - renamed task to filesToJson.
- 0.1.1 - updated README and GitHub repository.
- 0.1.0 - initial commit.