Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jcalixte/vue-pwa-asset-generator
PWA asset generator perfect with VueJS framework (but useful for all PWA!)
https://github.com/jcalixte/vue-pwa-asset-generator
android generation icon icons image-generation ios manifest progressive-web-app progressive-web-apps pwa pwa-assets vuejs
Last synced: 5 days ago
JSON representation
PWA asset generator perfect with VueJS framework (but useful for all PWA!)
- Host: GitHub
- URL: https://github.com/jcalixte/vue-pwa-asset-generator
- Owner: jcalixte
- Created: 2019-10-22T19:58:12.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-01-18T11:14:17.000Z (21 days ago)
- Last Synced: 2025-01-27T19:08:59.040Z (12 days ago)
- Topics: android, generation, icon, icons, image-generation, ios, manifest, progressive-web-app, progressive-web-apps, pwa, pwa-assets, vuejs
- Language: JavaScript
- Homepage:
- Size: 3.13 MB
- Stars: 176
- Watchers: 3
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- Security: SECURITY.md
Awesome Lists containing this project
README
# Vue PWA asset generator
![npm](https://img.shields.io/npm/v/vue-pwa-asset-generator?style=for-the-badge)
![npm](https://img.shields.io/npm/dm/vue-pwa-asset-generator?style=for-the-badge)_TLDR_:
```sh
npx vue-pwa-asset-generator -a {512x512_png_source | svg_source} [-o {output_folder} [-b {fallback background color}]]
```This package creates for you all the default assets used in a VueJS app with PWA plugin as well as a manifest JSON with the `icons` attribute set.
![demo](docs/demo.gif)
## Installation
You can use npx as shown above or you can install it globally:
```sh
npm install --global vue-pwa-asset-generator
```or
```sh
yarn global add vue-pwa-asset-generator
```or
```sh
pnpm global add vue-pwa-asset-generator
```## Usage
VueJS PWA asset generator has a `vue-asset-generate` command with two parameters:
- `-a`: input asset, it can be an SVG file or a PNG file (the largest image is a 512x512 png image).
- `-o`: output folder (created if it does not exist). This parameter is optional, by default, `vue-pwa-asset-generator` will assume the command is run in a VueJS project. Therefor the `manifest.json` and `favicon.ico` are in `public` folder, the rest ies in `public/img/icons` folder.
- `-b`: fallback background color for the `ico` image.
- `--no-manifest`: option to not generate manifest.json file## Examples
- `vue-asset-generate -a logo.png -o img`
- `vue-asset-generate -a logo.svg`
- `vue-asset-generate -a logo.svg -o img`
- `vue-asset-generate -a logo.svg -o img -b 182C61`
- `vue-asset-generate -a logo.svg -o img -b "#9AECDB"`## "Hey, I'm using the Vue plugin for pwa. Where do I put my manifest json?"
You can configure your PWA with the `vue.config.js` file.
Here an example of how you can merge the created `manifest.json` and your configuration file:
```js
module.exports = {
// ... other configurations
pwa: {
themeColor: "#130f40",
msTileColor: "#130f40",
name: "My app",
manifestOptions: {
icons: [
{
src: "./img/icons/android-chrome-192x192.png",
sizes: "192x192",
type: "image/png",
},
{
src: "./img/icons/android-chrome-512x512.png",
sizes: "512x512",
type: "image/png",
},
{
src: "./img/icons/android-chrome-maskable-192x192.png",
sizes: "192x192",
type: "image/png",
purpose: "maskable",
},
{
src: "./img/icons/android-chrome-maskable-512x512.png",
sizes: "512x512",
type: "image/png",
purpose: "maskable",
},
{
src: "./img/icons/apple-touch-icon-60x60.png",
sizes: "60x60",
type: "image/png",
},
{
src: "./img/icons/apple-touch-icon-76x76.png",
sizes: "76x76",
type: "image/png",
},
{
src: "./img/icons/apple-touch-icon-120x120.png",
sizes: "120x120",
type: "image/png",
},
{
src: "./img/icons/apple-touch-icon-152x152.png",
sizes: "152x152",
type: "image/png",
},
{
src: "./img/icons/apple-touch-icon-180x180.png",
sizes: "180x180",
type: "image/png",
},
{
src: "./img/icons/apple-touch-icon.png",
sizes: "180x180",
type: "image/png",
},
{
src: "./img/icons/favicon-16x16.png",
sizes: "16x16",
type: "image/png",
},
{
src: "./img/icons/favicon-32x32.png",
sizes: "32x32",
type: "image/png",
},
{
src: "./img/icons/msapplication-icon-144x144.png",
sizes: "144x144",
type: "image/png",
},
{
src: "./img/icons/mstile-150x150.png",
sizes: "150x150",
type: "image/png",
},
],
},
},
};
```## ⚠️
When generating assets from a png file, the generator creates a **black and white** svg for the `safari-pinned-tab.svg` icon, some manual modifications may be necessary.
I hope this will be useful as it is for me! ♥