Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pwa-manifest-loader

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pwa-manifest-loader

Progressive Web App manifest.json / app.webmenifest loader for webpack.

  • 1.0.4
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

pwa-manifest-loader for webpack

test Coverage Status NPM Version

Progressive Web App manifest loader for webpack, which will load referenced images files.

If you want to write your own PWA manifest, include it in a html file that's in your build, and have webpack process the image assets from the manifest then this is the loader for you.

This loader is typically used in combination with html-loader, (either as part of a html template for HtmlWebpackPlugin or as a html file processed directly by html-loader and exported as a static HTML file). The loader outputs JSON source as a string including transformed icon src URLs.

Install

npm i --save-dev pwa-manifest-loader

Example

Configure webpack to use the loader by adding a rule to your config:

webpack.config.js

module.exports = {
  module: {
    rules: [
      {
        // use pwa-manifest-loader for manifest.json, or app.webmanifest so icons get loaded
        test: /manifest.json$\|.webmanifest$/,
        use: 'pwa-manifest-loader'
      },
      // ... other loaders etc
    ],
    // ...
  }
}

In any html file processed by html-loader:

includes/head.html

<link rel="manifest" href="./manifest.json" />

The manifest path should be relative to the html file that includes it. html-loader will replace it with the correct output path in the generated HTML.

manifest.json / app.webmanifest

{
  "name": "MyApp",
  "short_name": "MyApp",
  "description": "App description etc.",
  "start_url": "/",
  "theme_color": "#ffffff",
  "background_color": "#ffffff",
  "display": "standalone",
  "icons": [
    {
      "src": "./img/icon-32.png",
      "sizes": "32x32"
    },
    {
      "src": "./img/icon-64.png",
      "sizes": "64x64"
    },
    {
      "src": "./img/icon-180.png",
      "sizes": "180x180"
    },
    {
      "src": "./img/icon.svg",
      "sizes": "any",
      "purpose": "any"
    },
    {
      "src": "./img/icon-maskable.svg",
      "sizes": "any",
      "purpose": "maskable"
    }
  ]
}

All of the referenced icons will be loaded by your webpack loaders. For example, if you're using ImageMinimizerWebpackPlugin you can use ?as=webp&w=180&h=180 on an icon src URL to compile it as a specific format and size.

License

Apache-2.0

Bugs etc?

Open a github issue please :)

Changelog

  • 1.0.4 Fixed Support for Webpack >= 5.96
  • 1.0.3 Fixed Support for Resolving Aliases
  • 1.0.2 Fixed Support for Screenhots
  • 1.0.1 Added Test Coverage and Documentation
  • 1.0 Initial Release

My PWAs that use this

Keywords

FAQs

Package last updated on 03 Dec 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc