<link rel="stylesheet" href="/_merged_assets/_static/search/noscript.css">
Custom Elements Manifest Custom Elements Manifest Analyzer Blog Playground Toggle darkmode

Configuration

CLI Options

Command/optionTypeDescriptionExample
analyzeAnalyze your components
--globsstring[]Globs to analyze--globs "foo.js"
--excludestring[]Globs to exclude--exclude "foo.js"
--outdirstringDirectory to output the Manifest to--outdir dist
--watchbooleanEnables watch mode, generates a new manifest on file change--watch
--devbooleanEnables extra logging for debugging--dev
--litelementbooleanEnable special handling for LitElement syntax--litelement
--fastbooleanEnable special handling for FASTElement syntax--fast
--stencilbooleanEnable special handling for Stencil syntax--stencil
--catalystbooleanEnable special handling for Catalyst syntax--catalyst

Config File

You can specify a custom custom-elements-manifest.config.mjs configuration file that allows the following properties:

custom-elements-manifest.config.mjs:

import { myAwesomePlugin } from 'awesome-plugin';

export default {
  globs: ['src/**/*.js'],
  exclude: ['src/foo.js'],
  outdir: 'dist',
  dev: true,
  watch: true,
  plugins: [
    myAwesomePlugin()
  ],

  /** Even more advanced usecases: */
  overrideModuleCreation: ({ts, globs}) => {
    const program = ts.createProgram(globs, defaultCompilerOptions);
    const typeChecker = program.getTypeChecker();

    return program.getSourceFiles().filter(sf => globs.find(glob => sf.fileName.includes(glob)));
  },
}

Config types:

interface userConfigOptions {
  globs: string[],
  exclude: string[],
  outdir: string,
  dev: boolean,
  watch: boolean,
  plugins: Array<() => Plugin>,
  overrideModuleCreation: ({ts: TypeScript, globs: string[]}) => SourceFile[]
}