GithubHelp home page GithubHelp logo

miguelcobain / broccoli-serviceworker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jkleinsc/broccoli-serviceworker

0.0 2.0 0.0 39 KB

ServiceWorker generator for Broccoli and Ember.js

License: MIT License

JavaScript 100.00%

broccoli-serviceworker's Introduction

broccoli-serviceworker

ServiceWorker generator for Broccoli and Ember.js. Derived from broccoli-manifest.

For more details on ServiceWorker check out the following:

Usage for Ember Cli

npm install --save-dev broccoli-serviceworker

//app/config/environment.js

ENV.serviceWorker = {
  enabled: true,
  serviceWorkerFile: "service-worker.js",
  excludePaths: ['tests/', 'online.html',],
  includePaths: ['/'],
  fallback: [
    '/online.html offline.html'      
  ],
  dynamicCache: [
    '/api/todos'
  ]
};

Upgrade your index.html (see below) and you are done.

Usage for Broccoli.js

npm install --save broccoli-serviceworker

Use broccoli-serviceworker as your last filter in the Brocfile.js like this

var writeServiceWorker = require('broccoli-serviceworker');

...

var completeTree = mergeTrees([appJs, appCss, publicFiles]);

module.exports = mergeTrees([completeTree, writeServiceWorker((completeTree)]);

Options

You can pass some options as the second argument to writeServiceWorker:

writeServiceWorker(completeTree, {
  serviceWorkerFile: "service-worker.js",
  excludePaths: ['tests/', 'online.html',],
  includePaths: ['/'],
  fallback: [
    '/online.html offline.html'      
  ],
  dynamicCache: [
    '/api/todos'
  ]
});

Files can be filtered using regular expressions.

{
  excludePaths: ['index.html', new RegExp(/.\.map$/)],
  includePaths: ['']
}

Upgrade your index.html

In order to use the generated serviceworker, you will need to register the serviceworker. You can do so with the following code:

<!DOCTYPE html>
<html>
  ...
  <script>
    if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('./service-worker.js', {scope: './'})
          .catch(function(error) {
              alert('Error registering service worker:'+error);
          });
    } else {
        alert('service worker not supported');
    }      
  </script>
</html>

broccoli-serviceworker's People

Contributors

jkleinsc avatar miguelcobain avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.