Skip to content

sparanoid/grunt-service-worker

Repository files navigation

grunt-service-worker

Greenkeeper badge

NPM version Build Status dependencies Status devDependencies Status

sw-precache wrapper

Getting Started

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-service-worker --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-service-worker');

The "service_worker" task

Overview

In your project's Gruntfile, add a section named service_worker to the data object passed into grunt.initConfig().

grunt.initConfig({
  service_worker: {
    options: {
      // Task-specific options go here.
    }
  },
});

Options

Options are passed to sw-precache. In addition this task defines some extra options:

options.baseDir

Type: String Default value: './'

The base working directory swPrecache scans.

options.workerFile

Type: String Default value: 'service-worker.js'

Service Worker entry filename, sw.js would be a good alternative.

Usage Examples

Default Options

In this example, service_worker will scans all files under public directory and generate service-worker.js with default options.

grunt.initConfig({
  service_worker: {
    options: {
      baseDir: 'public'
    }
  },
});

Custom Options

In this example, service_worker will scans all files under dist directory and generate sw.js with a custom staticFileGlobs.

grunt.initConfig({
  service_worker: {
    options: {
      baseDir: 'dist',
      workerFile: 'sw.js'
      staticFileGlobs: [
        '**/*.{gif,jpg,png}'
      ]
    }
  },
});

Contributing

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.

License

MIT