npm.io
1.0.5 • Published 3 months ago

@open-xchange/vite-plugin-ox-manifests

Licence
MIT
Version
1.0.5
Deps
0
Vulns
0
Weekly
0

Vite Plugin OX Manifests

A vite plugin that generates a manifest.json for code loading inside an App Suite UI plugin environment.

Install

pnpm i "@open-xchange/vite-plugin-ox-manifests"

How to use

// in the vite.config.js
import vitePluginOxManifests from '@open-xchange/vite-plugin-ox-manifests'

return {
  plugins: [vitePluginOxManifests()]
}

Options

You can provide the following options to the plugin:

  • watch <boolean> If set to true, it will watch any changes to manifest.json files and will automatically reload the vite-dev-server. Default: false
  • entryPoints <string> | <glob pattern> Convenience method to specify additional entry points for the production build. The glob pattern will be resolved and injected into the build.input options of vite. Can be specified as a glob-pattern. Default: undefined
  • manifestsAsEntryPoints <boolean> If set to true, this will inject every entrypoint that is defined by a manifest.json file into the build.input options of vite. Default: true
  • autoloadSettings <boolean> If set to true, this plugin tries to auto-detect files that export settings. Prerequisites are, that the file imports Settings from the io.ox/core/settings module and have a named export called settings. Default true
  • supportedEntryExtensions <string[]> This array defines the extensions, that are to expect as entry points. For example, if a manifest.json have "path": "index", it will look for index.js, index.mjs or index.ts next to the manifest.json. Default: ['js', 'mjs', 'ts']
  • meta <object | null> An object that will be translated into a meta.json file in the root directory. Default: null

Examples

Autoload settings

If autoload settings is enabled, the settings modules have to look like the following:

// import from the core settings module
import { Settings } from '$/io.ox/core/settings'

// named export 'settings'
export const settings = new Settings('test', () => {})

How to test

pnpm test

Migration guide

From 0.x to 1.x

The field transformAbsolutePaths has been removed as you can use base: './' within your vite configuration.