Grunt task for Chrome manifest.json
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, install this plugin with this command:
npm install grunt-chrome-manifest --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-chrome-manifest');
grunt.registerTask('default', ['chromeManifest:dist']);
chrome-manifest is composed of 3 steps:
- prepare: detects
background
andcontent_script
javascript and css files in manifest and update the grunt config to runconcat
cssmin
anduglify
.content_scripts
javascript files and excluded 'background' javascript files does not perform theconcat
task.
- buildnumber: detects
buildnumber
and increased if set to true. - cleanup: detects javascripts files for develop in manifest and remove them from manifest.json for distribution.
chromeManifest: {
dist: {
options: {
buildnumber: 'both',
background: {
target: 'scripts/background.js',
exclude: [
'background/scripts/chromereload.js'
]
}
},
src: 'app',
dest: 'dist',
manifest: 'app/manifest.json'
}
};
Required
Type: String
Base directory where the origin source files
Required
Type: String
Base directory where the transformed files should be output.
Type: String
Path of the source of manifest.json
. If it's not set the plugin will be going to read manifest.json
in src
path
Type: String
Boolean
Default: undefined
, false
Auto-increment types. Can be:
dest
: increase build number in dest onlyboth
: increase build number in both origin and destString
: version in this formatundefined
,false
: do not increase build number
- target:
String
, Relative path of the transformed(cssmin
anduglify
) background script. - exclude:
String
, Javascript files to exclude.
Type: Object
Default: undefined
Overwrite in manifest keys from object.
Type: Array[String]
Default: ['key']
Remove fields from manifest.json. The key field is removed by default as it is not allowed by the chrome webstore.
Grunt currently doesn't have a way to test tasks directly. You can test this task by running grunt
and manually verify that it works.
MIT © Jimmy Moon