Getting started with service workers

From Get docs
Angular/docs/7/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.

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–2019 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.
https://v7.angular.io/guide/service-worker-getting-started