{"id":15043148,"url":"https://github.com/nekr/offline-plugin","last_synced_at":"2025-05-13T20:10:10.595Z","repository":{"id":43774260,"uuid":"42321571","full_name":"NekR/offline-plugin","owner":"NekR","description":"Offline plugin  (ServiceWorker, AppCache) for webpack (https://webpack.js.org/)","archived":false,"fork":false,"pushed_at":"2021-11-08T05:42:32.000Z","size":1181,"stargazers_count":4518,"open_issues_count":109,"forks_count":291,"subscribers_count":57,"default_branch":"master","last_synced_at":"2025-05-13T06:43:32.325Z","etag":null,"topics":["appcache","application-cache","caching","javascript","offline","offline-first","plugin","progressive-web-app","pwa","service-worker","service-workers","serviceworker","storage","webpack","webpack-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NekR.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":null,"patreon":null,"open_collective":"offline-plugin","ko_fi":null,"tidelift":null,"custom":null}},"created_at":"2015-09-11T17:03:50.000Z","updated_at":"2025-05-10T01:07:58.000Z","dependencies_parsed_at":"2022-07-30T12:48:02.977Z","dependency_job_id":null,"html_url":"https://github.com/NekR/offline-plugin","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekR%2Foffline-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekR%2Foffline-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekR%2Foffline-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NekR%2Foffline-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NekR","download_url":"https://codeload.github.com/NekR/offline-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254020606,"owners_count":22000753,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appcache","application-cache","caching","javascript","offline","offline-first","plugin","progressive-web-app","pwa","service-worker","service-workers","serviceworker","storage","webpack","webpack-plugin"],"created_at":"2024-09-24T20:48:38.105Z","updated_at":"2025-05-13T20:10:10.573Z","avatar_url":"https://github.com/NekR.png","language":"JavaScript","readme":"﻿\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://offline-plugin.now.sh/\"\u003e\u003cimg src=\"https://rawgit.com/NekR/offline-plugin/master/logo/logo.svg\" width=\"120\" alt=\"offline-plugin logo\"\u003e\u003c/a\u003e\n\n  \u003ch1\u003e\u003ccode\u003eoffline-plugin\u003c/code\u003e for webpack\u003c/h1\u003e\n\n  \u003ca href=\"#backers\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backers/badge.svg\" alt=\"backers\" /\u003e\u003c/a\u003e\n  \u003ca href=\"#sponsors\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsors/badge.svg\" alt=\"sponsors\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/offline-plugin\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/offline-plugin.svg?maxAge=3600\u0026v4\" alt=\"npm\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/offline-plugin\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/offline-plugin.svg?maxAge=3600\" alt=\"npm\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr\u003e\n\nThis plugin is intended to provide an offline experience for **webpack** projects. It uses **ServiceWorker**, and **AppCache** as a fallback under the hood. Simply include this plugin in your ``webpack.config``, and the accompanying runtime in your client script, and your project will become offline ready by caching all (or some) of the webpack output assets.\n\n\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eSponsors\u003c/h1\u003e\n  \n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/0/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/1/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/2/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/3/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/4/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/5/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/6/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/7/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/8/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/9/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/10/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/11/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/12/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/13/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/14/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/15/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/16/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/17/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/18/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/19/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/20/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/21/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/22/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/23/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/24/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/25/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/26/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/27/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/28/avatar.svg\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://opencollective.com/offline-plugin/sponsor/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/sponsor/29/avatar.svg\"\u003e\u003c/a\u003e\n  \n  Become a sponsor and get your logo on our README on Github with a link to your site.\u003cbr\u003e\n  \u003cstrong\u003e\u003ca href=\"https://opencollective.com/offline-plugin#sponsor\"\u003eBecome a sponsor\u003c/a\u003e\u003c/strong\u003e\n\u003c/div\u003e\n\n## Install\n\n`npm install offline-plugin [--save-dev]`\n\n## Setup\n\nFirst, instantiate the plugin in your `webpack.config`:\n\n```js\n// webpack.config.js example\n\nvar OfflinePlugin = require('offline-plugin');\n\nmodule.exports = {\n  // ...\n\n  plugins: [\n    // ... other plugins\n    // it's always better if OfflinePlugin is the last plugin added\n    new OfflinePlugin()\n  ]\n  // ...\n}\n```\n_(and optionally configure with [options](docs/options.md))_  \n\nThen, add the [runtime](docs/runtime.md) into your entry file (typically main entry):\n\n```js\nrequire('offline-plugin/runtime').install();\n```\n\nES6/Babel/TypeScript\n```js\nimport * as OfflinePluginRuntime from 'offline-plugin/runtime';\nOfflinePluginRuntime.install();\n```\n\n\u003e For more details of usage with `TypeScript` see [here](docs/typescript.md)\n\n### `offline-plugin` isn't working?\n\n:information_source: **[Troubleshooting](docs/troubleshooting.md)** | **[FAQ](docs/FAQ.md)**\n\n## Docs\n\n* [Options](docs/options.md)\n* [Caches](docs/caches.md)\n* [Update process](docs/updates.md)\n* [Cache Maps](docs/cache-maps.md)\n* [Runtime API](docs/runtime.md)\n\n## Examples\n\n* [Single Page Application](docs/examples/SPA.md)\n\n## Articles\n\n* [Easy Offline First Apps With Webpack's Offline Plugin](https://dev.to/kayis/easy-offline-first-apps-with-webpacks-offline-plugin)\n* [Handling Client Side App Updates (with Service Workers)](https://zach.codes/handling-client-side-app-updates-with-service-workers/)\n\n## Options\n\nAll options are optional and `offline-plugin` can be used without specifying them.\n\n#### [See all available options here.](docs/options.md)\n\n## Who is using `offline-plugin`\n\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003eDemo:\u003cbr\u003e\u003ca href=\"https://offline-plugin.now.sh/\"\u003e Progressive Web App built with \u003ccode\u003eoffline-plugin\u003c/code\u003e\u003c/a\u003e\u003c/strong\u003e\u003cbr\u003e\n  \u003cdiv\u003e(\u003ca href=\"https://github.com/NekR/offline-plugin-pwa\"\u003e\u003ci\u003esource code\u003c/i\u003e\u003c/a\u003e)\u003c/div\u003e\n\u003c/div\u003e\n\n### Projects\n\n* [React Boilerplate](https://github.com/mxstbr/react-boilerplate)\n* [Phenomic](https://phenomic.io)\n* [React, Universally](https://github.com/ctrlplusb/react-universally)\n\n### PWAs\n\n* [`offline-plugin` PWA](https://offline-plugin.now.sh/)\n* [Omroep West](https://m.omroepwest.nl/)\n* [Preact](https://preactjs.com/) ([source](https://github.com/developit/preact-www))\n* [CodePan](https://codepan.net) ([source](https://github.com/egoist/codepan))\n* [Offline Kanban](https://offline-kanban.herokuapp.com) ([source](https://github.com/sarmadsangi/offline-kanban))\n* [Online Board](https://onlineboard.sonnywebdesign.com/) ([source](https://github.com/andreasonny83/online-board))\n* [Fluid Outliner](https://fluid-notion.github.io/fluid-outliner/) ([source](https://github.com/fluid-notion/fluid-outliner))\n\n_If you are using `offline-plugin`, feel free to submit a PR to add your project to this list._\n\n## Like `offline-plugin`?\n\nSupport it by giving [feedback](https://github.com/NekR/offline-plugin/issues), [contributing](CONTRIBUTING.md), becoming a [backer/sponsor](https://opencollective.com/offline-plugin) or just by 🌟 starring the project!\n\n\n## Backers\n\nSupport us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/offline-plugin#backer)]\n\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/0/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/1/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/2/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/3/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/4/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/5/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/6/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/7/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/8/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/9/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/9/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/10/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/10/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/11/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/11/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/12/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/12/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/13/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/13/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/14/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/14/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/15/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/15/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/16/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/16/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/17/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/17/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/18/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/18/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/19/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/19/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/20/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/20/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/21/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/21/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/22/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/22/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/23/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/23/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/24/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/24/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/25/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/25/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/26/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/26/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/27/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/27/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/28/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/28/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/offline-plugin/backer/29/website\" target=\"_blank\"\u003e\u003cimg src=\"https://opencollective.com/offline-plugin/backer/29/avatar.svg\"\u003e\u003c/a\u003e\n\n## Contribution\n\nSee [CONTRIBUTING](CONTRIBUTING.md)\n\n## License\n\n[MIT](LICENSE.md)  \n[Logo](logo/LICENSE.md)\n\n## CHANGELOG\n\n[CHANGELOG](CHANGELOG.md)\n","funding_links":["https://opencollective.com/offline-plugin","https://opencollective.com/offline-plugin/backer/0/website","https://opencollective.com/offline-plugin/backer/1/website","https://opencollective.com/offline-plugin/backer/2/website","https://opencollective.com/offline-plugin/backer/3/website","https://opencollective.com/offline-plugin/backer/4/website","https://opencollective.com/offline-plugin/backer/5/website","https://opencollective.com/offline-plugin/backer/6/website","https://opencollective.com/offline-plugin/backer/7/website","https://opencollective.com/offline-plugin/backer/8/website","https://opencollective.com/offline-plugin/backer/9/website","https://opencollective.com/offline-plugin/backer/10/website","https://opencollective.com/offline-plugin/backer/11/website","https://opencollective.com/offline-plugin/backer/12/website","https://opencollective.com/offline-plugin/backer/13/website","https://opencollective.com/offline-plugin/backer/14/website","https://opencollective.com/offline-plugin/backer/15/website","https://opencollective.com/offline-plugin/backer/16/website","https://opencollective.com/offline-plugin/backer/17/website","https://opencollective.com/offline-plugin/backer/18/website","https://opencollective.com/offline-plugin/backer/19/website","https://opencollective.com/offline-plugin/backer/20/website","https://opencollective.com/offline-plugin/backer/21/website","https://opencollective.com/offline-plugin/backer/22/website","https://opencollective.com/offline-plugin/backer/23/website","https://opencollective.com/offline-plugin/backer/24/website","https://opencollective.com/offline-plugin/backer/25/website","https://opencollective.com/offline-plugin/backer/26/website","https://opencollective.com/offline-plugin/backer/27/website","https://opencollective.com/offline-plugin/backer/28/website","https://opencollective.com/offline-plugin/backer/29/website"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekr%2Foffline-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnekr%2Foffline-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnekr%2Foffline-plugin/lists"}