pwa-manifest-loader
Advanced tools
Comparing version 1.0.0 to 1.0.1
{ | ||
"name": "pwa-manifest-loader", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Progressive Web App manifest.json / app.webmenifest loader for webpack.", | ||
"main": "index.mjs", | ||
"scripts": { | ||
"test": "echo \"Error: no test specified\" && exit 1", | ||
"test": "NODE_OPTIONS=--experimental-vm-modules jest", | ||
"lint": "eslint -c eslint.config.mjs './{,!(node_modules)/**/}*.mjs'" | ||
}, | ||
"jest": { | ||
"testEnvironment": "node", | ||
"transform": {}, | ||
"testMatch": [ | ||
"**/__tests__/**/*.([tj]s|mjs)?(x)", | ||
"**/?(*.)+(spec|test).([tj]s|mjs)?(x)" | ||
] | ||
}, | ||
"repository": { | ||
@@ -14,2 +22,5 @@ "type": "git", | ||
}, | ||
"files": [ | ||
"index.mjs" | ||
], | ||
"keywords": [ | ||
@@ -32,4 +43,8 @@ "webpack", | ||
"eslint": "^9.8.0", | ||
"globals": "^15.8.0" | ||
"eslint-plugin-jest": "^28.6.0", | ||
"globals": "^15.8.0", | ||
"jest": "^29.7.0", | ||
"memfs": "^4.11.0", | ||
"webpack": "^5.93.0" | ||
} | ||
} |
107
README.md
@@ -1,2 +0,105 @@ | ||
# webpack-pwa-manifest-loader | ||
Progressive Web App manifest.json loader for webpack, which will load referenced images files. | ||
# pwa-manifest-loader for webpack | ||
[![test](https://github.com/autopulated/webpack-pwa-manifest-loader/actions/workflows/test.yml/badge.svg)](https://github.com/autopulated/webpack-pwa-manifest-loader/actions/workflows/test.yml) | ||
[![Coverage Status](https://coveralls.io/repos/github/autopulated/webpack-pwa-manifest-loader/badge.svg?branch=main)](https://coveralls.io/github/autopulated/webpack-pwa-manifest-loader?branch=main) | ||
[![NPM Version](https://img.shields.io/npm/v/pwa-manifest-loader?style=flat)](https://www.npmjs.com/package/pwa-manifest-loader) | ||
[Progressive Web App | ||
manifest](https://developer.mozilla.org/en-US/docs/Web/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](https://webpack.js.org/loaders/html-loader/), (either as part of a | ||
html template for | ||
[HtmlWebpackPlugin](https://webpack.js.org/plugins/html-webpack-plugin/) 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 | ||
```sh | ||
npm i --save-dev pwa-manifest-loader | ||
``` | ||
## Example | ||
Configure webpack to use the loader by adding a rule to your config: | ||
**webpack.config.js** | ||
```js | ||
module.exports = { | ||
module: { | ||
rules: [ | ||
{ | ||
// use pwa-manifest-loader for manifest.json, or app.webmanifest so we can interpret icon URLs. | ||
test: /manifest.json$\|.webmanifest$/, | ||
use: 'pwa-manifest-loader' | ||
}, | ||
// ... other loaders etc | ||
], | ||
// ... | ||
} | ||
} | ||
``` | ||
In any html file processed by [html-loader](https://webpack.js.org/loaders/html-loader/): | ||
**includes/head.html** | ||
```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**](https://developer.mozilla.org/en-US/docs/Web/Manifest) | ||
```json | ||
{ | ||
"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](https://webpack.js.org/plugins/image-minimizer-webpack-plugin/) | ||
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 :) |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
Found 1 instance in 1 package
17288
0
106
7
4
35