Files
wxt/docs/guide/manifest.md
T
2023-07-14 22:28:08 -05:00

2.6 KiB

Manifest.json

The manifest.json is generated at build-time based on files in your entrypoints directory and your wxt.config.ts.

Customization

While entrypoints are generated and added to the manifest at build-time, you can customize or add to your manifest.json in the config file.

import { defineConfig } from 'wxt';

export default defineConfig({
  manifest: {
    host_permissions: ['*://google.com/*'],
    content_security_policy: {
      // ...
    },
  },
});

name

If not provided via the manifest config, the manifest's name defaults to your package.json's name property.

version and version_name

The manifest's version and version_name fields are based on your package.json's version property.

  • version_name is the exact string listed in your package.json
  • version is the string cleaned up, with any invalid suffixes removed

Example

// package.json
{
  "version": "1.3.0-alpha2"
}
// .output/<dir>/manifest.json
{
  "version": "1.3.0",
  "version_name": "1.3.0-alpha2"
}

icons

The manifest's icons property needs to be set in the config file. The files should be added to WXT's public directory.

public/
├─ icon-16.png
├─ icon-24.png
├─ icon-48.png
├─ icon-96.png
└─ icon-128.png
export default defineConfig({
  manifest: {
    icons: {
      16: '/icon-16.png',
      24: '/icon-24.png',
      48: '/icon-48.png',
      96: '/icon-96.png',
      128: '/icon-128.png',
    },
  },
});

Permissions

Permissions must be listed in the manifest config.

export default defineConfig({
  manifest: {
    permissions: ['storage', 'tabs'],
  },
});

Localization

Similar to the icon, the _locales directory should be placed inside the the WXT's public directory.

public/
└─ _locales/
   ├─ en/
   │  └─ messages.json
   ├─ es/
   │  └─ messages.json
   └─ ko/
      └─ messages.json

Then you'll need to explicitly override the name and description properties in your config for them to be localized.

export default defineConfig({
  manifest: {
    name: '__MSG_extName__',
    description: '__MSG_extDescription__',
    default_locale: 'en',
  },
});