VS Code Extension for PWA Tools
This extension for Visual Studio Code adds snippets and JSON schema for a manifest.json for creating Progressive Web Apps (PWA).
THIS IS AN ALPHA VERSION

See the CHANGELOG for the latest changes
Usage
Type part of a snippet, press enter, and the snippet unfolds.
JavaScript / TypeScript Snippets
pwa-custom-service-worker // create a service worker file which can be extended
pwa-register // function that registers the service worker
JavaScript Snippets
// Helpful for build processes that generate service worker code
pwa-inject-precache // inject precache list into service worker
pwa-generate-service-worker // generate a service worker with a precache manifest
// Event listeners
pwa-event-push // create a event listener for push
pwa-event-sync // create a event listener for sync
pwa-event-notificationclick // create a event listener for notificationclick
pwa-event-pushsubscriptionchange // create a event listener for pushsubscriptionchange
pwa-event-load // create a event listener for load
pwa-event-activate // create a event listener for activate
pwa-event-install // create a event listener for install
pwa-event-fetch // create a event listener for fetch
HTML Snippets
pwa-manifest-link // create the link to the manifest.json
pwa-apple-mobile-web-capable // add the meta tag for apple mobile web capable
JSON Snippets
pwa-manifest // create the contents of `manifest.json`
Alternatively, press Ctrl+Space (Windows, Linux) or Cmd+Space (OSX) to activate snippets from within the editor.
Installation
- Install Visual Studio Code 1.10.0 or higher
- Launch Code
- From the command palette
Ctrl-Shift-P (Windows, Linux) or Cmd-Shift-P (OSX)
- Select
Install Extension
- Choose the extension
PWA-Tools
- Reload Visual Studio Code
Try it Out
Let's take a PWA for a spin. Using the Angular CLI, let's generate a new app and add PWA features.
Before we begin, install the Angular CLI and lite-server, if you haven't already done so, by running npm i @angular/cli lite-server -g
- Create an Angular app with
ng new my-app --routing and open the app in VS Code
- Create
src/manifest.json
- Use the
pwa-manifest snippet
- Open
src/index.html and use the pwa-manifest-link snippet (in the element)
- Use the pwa-apple-mobile-web-capable snippet (in the element)
- Create
generate-sw.js
- Run
cd my-app and then npm i workbox-build (add --save if you're using npm < 5.x)
- Use the pwa-generate-service-worker in
generate-sw.js
- Add "manifest.json" to the
apps[0].assets array in .angular-cli.json
- Open
src/app/main.ts and run pwa-register at the bottom
- Call
.then(() => registerServiceWorker()); after bootstrapping
- Run
ng build --prod && node generate-sw.js && cd dist && lite-server
Now test it!
Your app should be running in the browser. Open the developer tools, go to the Application tab, and select Service Workers. Inspect the service worker, and try to go offline and refresh.