Getting started with service workers

From Get docs
Angular/docs/8/guide/service-worker-getting-started


Getting started with service workers

This document explains how to enable Angular service worker support in projects that you created with the Angular CLI. It then uses a simple example to show you a service worker in action, demonstrating loading and basic caching.

Prerequisites

A basic understanding of the information in Introduction to Angular service workers.

Adding a service worker to your project

To set up the Angular service worker in your project, use the CLI command ng add @angular/pwa. It takes care of configuring your app to use service workers by adding the service-worker package along with setting up the necessary support files.

ng add @angular/pwa --project *project-name*

The above command completes the following actions:

  1. Adds the @angular/service-worker package to your project.
  2. Enables service worker build support in the CLI.
  3. Imports and registers the service worker in the app module.
  4. Updates the index.html file:
    • Includes a link to add the manifest.json file.
    • Adds meta tags for theme-color.
  5. Installs icon files to support the installed Progressive Web App (PWA).
  6. Creates the service worker configuration file called ngsw-config.json, which specifies the caching behaviors and other settings.

Now, build the project:

ng build --prod

The CLI project is now set up to use the Angular service worker.

Service worker in action: a tour

This section demonstrates a service worker in action, using an example application.

Serving with http-server

Because ng serve does not work with service workers, you must use a separate HTTP server to test your project locally. You can use any HTTP server. The example below uses the http-server package from npm. To reduce the possibility of conflicts and avoid serving stale content, test on a dedicated port and disable caching.

To serve the directory containing your web files with http-server, run the following command:

http-server -p 8080 -c-1 dist/<project-name>

Initial load

With the server running, you can point your browser at http://localhost:8080/. Your application should load normally.

Tip: When testing Angular service workers, it's a good idea to use an incognito or private window in your browser to ensure the service worker doesn't end up reading from a previous leftover state, which can cause unexpected behavior.

Note: If you are not using HTTPS, the service worker will only be registered when accessing the app on localhost.

Simulating a network issue

To simulate a network issue, disable network interaction for your application. In Chrome:

  1. Select Tools > Developer Tools (from the Chrome menu located at the top right corner).
  2. Go to the Network tab.
  3. Check the Offline box.

[[../File:data:image/png;base64,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|thumb|none|600x62px]]

Now the app has no access to network interaction.

For applications that do not use the Angular service worker, refreshing now would display Chrome's Internet disconnected page that says "There is no Internet connection".

With the addition of an Angular service worker, the application behavior changes. On a refresh, the page loads normally.

If you look at the Network tab, you can verify that the service worker is active.

[[../File:data:image/png;base64,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|thumb|none|630x112px]]

Notice that under the "Size" column, the requests state is (from ServiceWorker). This means that the resources are not being loaded from the network. Instead, they are being loaded from the service worker's cache.

What's being cached?

Notice that all of the files the browser needs to render this application are cached. The ngsw-config.json boilerplate configuration is set up to cache the specific resources used by the CLI:

  • index.html.
  • favicon.ico.
  • Build artifacts (JS and CSS bundles).
  • Anything under assets.
  • Images and fonts directly under the configured outputPath (by default ./dist/<project-name>/) or resourcesOutputPath. See ng build for more information about these options.

Pay attention to two key points: The generated ngsw-config.json includes a limited list of cachable fonts and images extentions. In some cases, you might want to modify the glob pattern to suit your needs. If resourcesOutputPath or assets paths are modified after the generation of configuration file, you need to change the paths manually in ngsw-config.json.

Making changes to your application

Now that you've seen how service workers cache your application, the next step is understanding how updates work.

  1. If you're testing in an incognito window, open a second blank tab. This will keep the incognito and the cache state alive during your test.
  2. Close the application tab, but not the window. This should also close the Developer Tools.
  3. Shut down http-server.
  4. Next, make a change to the application, and watch the service worker install the update.
  5. Open src/app/app.component.html for editing.
  6. Change the text Welcome to Template:Title! to Bienvenue à Template:Title!.
  7. Build and run the server again:
ng build --prod
http-server -p 8080 -c-1 dist/<project-name>

Updating your application in the browser

Now look at how the browser and service worker handle the updated application.

  1. Open http://localhost:8080 again in the same window. What happens?

[[../File:data:image/png;base64,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|thumb|none|411x248px]]

What went wrong? Nothing, actually. The Angular service worker is doing its job and serving the version of the application that it has installed, even though there is an update available. In the interest of speed, the service worker doesn't wait to check for updates before it serves the application that it has cached.

If you look at the http-server logs, you can see the service worker requesting /ngsw.json. This is how the service worker checks for updates.

  1. Refresh the page.

[[../File:data:image/png;base64,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|thumb|none|393x240px]]

The service worker installed the updated version of your app in the background, and the next time the page is loaded or reloaded, the service worker switches to the latest version.

More on Angular service workers

You may also be interested in the following:

© 2010–2020 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v8.angular.io/guide/service-worker-getting-started