app-builder-lib
- Version 25.0.5
- Published
- 3 MB
- 29 dependencies
- MIT license
Install
npm i app-builder-lib
yarn add app-builder-lib
pnpm add app-builder-lib
Overview
electron-builder lib
Index
Variables
Functions
Classes
Packager
- addAfterPackHandler()
- afterPack()
- appDir
- appInfo
- areNodeModulesHandledExternally
- artifactCreated()
- build()
- buildResourcesDir
- callAppxManifestCreated()
- callArtifactBuildCompleted()
- callArtifactBuildStarted()
- callMsiProjectCreated()
- cancellationToken
- config
- debugLogger
- devMetadata
- dispatchArtifactCreated()
- disposeOnBuildFinish()
- eventEmitter
- framework
- getNodeDependencyInfo()
- installAppDependencies()
- isPrepackedAppAsar
- isTwoPackageJsonProjectLayoutUsed
- metadata
- options
- projectDir
- relativeBuildResourcesDirname
- repositoryInfo
- stageDirPathCustomizer
- tempDirManager
- validateConfig()
PlatformPackager
- appInfo
- artifactPatternConfig()
- buildResourcesDir
- compression
- computeAppOutDir()
- computeSafeArtifactName()
- config
- createGetFileMatchersOptions()
- createTargets()
- createTransformerForExtraFiles()
- debugLogger
- defaultTarget
- dispatchArtifactCreated()
- doGetCscPassword()
- doPack()
- doSignAfterPack()
- expandArtifactBeautyNamePattern()
- expandArtifactNamePattern()
- expandMacro()
- fileAssociations
- forceCodeSigning
- generateName2()
- getCscLink()
- getCscPassword()
- getDefaultFrameworkIcon()
- getElectronDestinationDir()
- getElectronSrcDir()
- getIconPath()
- getMacOsResourcesDir()
- getOrConvertIcon()
- getResource()
- getResourcesDir()
- getTempFile()
- info
- pack()
- packageInDistributableFormat()
- packagerOptions
- platform
- platformSpecificBuildOptions
- prepareAppInfo()
- projectDir
- resolveIcon()
- resourceList
- signApp()
Interfaces
Configuration
- afterAllArtifactBuild
- afterExtract
- afterPack
- afterSign
- apk
- appId
- appImage
- appx
- appxManifestCreated
- artifactBuildCompleted
- artifactBuildStarted
- beforeBuild
- beforePack
- buildDependenciesFromSource
- buildNumber
- buildVersion
- copyright
- deb
- directories
- disableSanityCheckAsar
- dmg
- downloadAlternateFFmpeg
- electronBranding
- electronCompile
- electronDist
- electronDownload
- electronVersion
- extends
- extraMetadata
- flatpak
- forceCodeSigning
- framework
- freebsd
- includePdb
- includeSubNodeModules
- launchUiVersion
- linux
- mac
- mas
- masDev
- msi
- msiProjectCreated
- msiWrapped
- nativeRebuilder
- nodeGypRebuild
- nodeVersion
- npmArgs
- npmRebuild
- nsis
- nsisWeb
- onNodeModuleFile
- p5p
- pacman
- pkg
- portable
- productName
- removePackageKeywords
- removePackageScripts
- rpm
- snap
- squirrelWindows
- win
MacConfiguration
- additionalArguments
- binaries
- bundleShortVersion
- bundleVersion
- category
- cscInstallerKeyPassword
- cscInstallerLink
- darkModeSupport
- entitlements
- entitlementsInherit
- entitlementsLoginHelper
- extendInfo
- extraDistFiles
- gatekeeperAssess
- hardenedRuntime
- helperBundleId
- helperEHBundleId
- helperGPUBundleId
- helperNPBundleId
- helperPluginBundleId
- helperRendererBundleId
- icon
- identity
- mergeASARs
- minimumSystemVersion
- notarize
- preAutoEntitlements
- provisioningProfile
- requirements
- sign
- signIgnore
- singleArchFiles
- strictVerify
- target
- timestamp
- type
- x64ArchFiles
NsisOptions
- allowElevation
- allowToChangeInstallationDirectory
- artifactName
- deleteAppDataOnUninstall
- differentialPackage
- displayLanguageSelector
- include
- installerHeader
- installerHeaderIcon
- installerIcon
- installerLanguages
- installerSidebar
- language
- license
- multiLanguageInstaller
- oneClick
- packElevateHelper
- perMachine
- preCompressedFileExtensions
- removeDefaultUninstallWelcomePage
- script
- selectPerMachineByDefault
- uninstallDisplayName
- uninstallerIcon
- uninstallerSidebar
PlatformSpecificBuildOptions
- appId
- artifactName
- asar
- asarUnpack
- compression
- cscKeyPassword
- cscLink
- defaultArch
- detectUpdateChannel
- disableDefaultIgnoredFiles
- electronLanguages
- electronUpdaterCompatibility
- executableName
- extraFiles
- extraResources
- fileAssociations
- files
- forceCodeSigning
- generateUpdatesFilesForAllChannels
- icon
- protocols
- publish
- releaseInfo
- target
Type Aliases
Variables
variable DEFAULT_TARGET
const DEFAULT_TARGET: string;
variable DIR_TARGET
const DIR_TARGET: string;
Functions
function build
build: ( options: PackagerOptions & PublishOptions, packager?: Packager) => Promise<Array<string>>;
function buildForge
buildForge: ( forgeOptions: ForgeOptions, options: PackagerOptions) => Promise<string[]>;
function checkBuildRequestOptions
checkBuildRequestOptions: (options: PackagerOptions & PublishOptions) => void;
Classes
class AppInfo
class AppInfo {}
constructor
constructor( info: Packager, buildVersion: string, platformSpecificOptions?: PlatformSpecificBuildOptions, normalizeNfd?: boolean);
property buildNumber
readonly buildNumber: string;
property buildVersion
readonly buildVersion: string;
property channel
readonly channel: string;
property companyName
readonly companyName: string;
property copyright
readonly copyright: string;
property description
readonly description: string;
property id
readonly id: string;
property linuxPackageName
readonly linuxPackageName: string;
property macBundleIdentifier
readonly macBundleIdentifier: string;
property name
readonly name: string;
property productFilename
readonly productFilename: string;
property productName
readonly productName: string;
property sanitizedName
readonly sanitizedName: string;
property sanitizedProductName
readonly sanitizedProductName: string;
property shortVersion
readonly shortVersion: string;
property shortVersionWindows
readonly shortVersionWindows: string;
property type
readonly type: string;
property updaterCacheDirName
readonly updaterCacheDirName: string;
property version
readonly version: string;
method computePackageUrl
computePackageUrl: () => Promise<string | null>;
method getVersionInWeirdWindowsForm
getVersionInWeirdWindowsForm: (isSetBuildNumber?: boolean) => string;
class LinuxPackager
class LinuxPackager extends PlatformPackager<LinuxConfiguration> {}
constructor
constructor(info: Packager);
property defaultTarget
readonly defaultTarget: string[];
property executableName
readonly executableName: string;
method createTargets
createTargets: ( targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void) => void;
class MacPackager
class MacPackager extends PlatformPackager<MacConfiguration> {}
constructor
constructor(info: Packager);
property codeSigningInfo
readonly codeSigningInfo: MemoLazy<CreateKeychainOptions, CodeSigningInfo>;
property defaultTarget
readonly defaultTarget: string[];
method applyCommonInfo
applyCommonInfo: (appPlist: any, contentsPath: string) => Promise<void>;
method createTargets
createTargets: ( targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void) => void;
method doFlat
protected doFlat: ( appPath: string, outFile: string, identity: Identity, keychain: string | null | undefined) => Promise<any>;
method doPack
protected doPack: ( outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: MacConfiguration, targets: Array<Target>) => Promise<any>;
method doSign
protected doSign: ( opts: SignOptions, customSignOptions: MacConfiguration) => Promise<void>;
method getElectronDestinationDir
getElectronDestinationDir: (appOutDir: string) => string;
method getElectronSrcDir
getElectronSrcDir: (dist: string) => string;
method getIconPath
getIconPath: () => Promise<string | null>;
method pack
pack: ( outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager) => Promise<void>;
method prepareAppInfo
protected prepareAppInfo: (appInfo: AppInfo) => AppInfo;
method signApp
protected signApp: ( packContext: AfterPackContext, isAsar: boolean) => Promise<boolean>;
class Packager
class Packager {}
constructor
constructor(options: PackagerOptions, cancellationToken?: CancellationToken);
property appDir
readonly appDir: string;
property appInfo
readonly appInfo: AppInfo;
property areNodeModulesHandledExternally
readonly areNodeModulesHandledExternally: boolean;
property buildResourcesDir
readonly buildResourcesDir: string;
property cancellationToken
readonly cancellationToken: CancellationToken;
property config
readonly config: Configuration;
property debugLogger
readonly debugLogger: DebugLogger;
property devMetadata
readonly devMetadata: Metadata;
property eventEmitter
readonly eventEmitter: EventEmitter;
property framework
readonly framework: Framework;
property isPrepackedAppAsar
readonly isPrepackedAppAsar: boolean;
property isTwoPackageJsonProjectLayoutUsed
isTwoPackageJsonProjectLayoutUsed: boolean;
property metadata
readonly metadata: Metadata;
property options
readonly options: PackagerOptions;
property projectDir
readonly projectDir: string;
property relativeBuildResourcesDirname
readonly relativeBuildResourcesDirname: string;
property repositoryInfo
readonly repositoryInfo: Promise<SourceRepositoryInfo>;
property stageDirPathCustomizer
stageDirPathCustomizer: ( target: Target, packager: PlatformPackager<any>, arch: Arch) => string;
property tempDirManager
readonly tempDirManager: TmpDir;
method addAfterPackHandler
addAfterPackHandler: ( handler: (context: AfterPackContext) => Promise<any> | null) => void;
method afterPack
afterPack: (context: AfterPackContext) => Promise<any>;
method artifactCreated
artifactCreated: (handler: (event: ArtifactCreated) => void) => Packager;
method build
build: (repositoryInfo?: SourceRepositoryInfo) => Promise<BuildResult>;
method callAppxManifestCreated
callAppxManifestCreated: (path: string) => Promise<void>;
method callArtifactBuildCompleted
callArtifactBuildCompleted: (event: ArtifactCreated) => Promise<void>;
method callArtifactBuildStarted
callArtifactBuildStarted: ( event: ArtifactBuildStarted, logFields?: any) => Promise<void>;
method callMsiProjectCreated
callMsiProjectCreated: (path: string) => Promise<void>;
method dispatchArtifactCreated
dispatchArtifactCreated: (event: ArtifactCreated) => void;
Only for sub artifacts (update info), for main artifacts use
callArtifactBuildCompleted
.
method disposeOnBuildFinish
disposeOnBuildFinish: (disposer: () => Promise<void>) => void;
method getNodeDependencyInfo
getNodeDependencyInfo: ( platform: Platform | null) => Lazy<(NodeModuleInfo | NodeModuleDirInfo)[]>;
method installAppDependencies
installAppDependencies: (platform: Platform, arch: Arch) => Promise<any>;
method validateConfig
validateConfig: () => Promise<void>;
class Platform
class Platform {}
constructor
constructor( name: string, buildConfigurationKey: string, nodeName: NodeJS.Platform);
property buildConfigurationKey
buildConfigurationKey: string;
property LINUX
static LINUX: Platform;
property MAC
static MAC: Platform;
property name
name: string;
property nodeName
nodeName: NodeJS.Platform;
property WINDOWS
static WINDOWS: Platform;
method createTarget
createTarget: ( type?: string | Array<string> | null, ...archs: Array<Arch>) => Map<Platform, Map<Arch, Array<string>>>;
method current
static current: () => Platform;
method fromString
static fromString: (name: string) => Platform;
method toString
toString: () => string;
class PlatformPackager
abstract class PlatformPackager<DC extends PlatformSpecificBuildOptions> {}
constructor
protected constructor(info: Packager, platform: Platform);
property appInfo
readonly appInfo: AppInfo;
property buildResourcesDir
readonly buildResourcesDir: string;
property compression
readonly compression: CompressionLevel;
property config
readonly config: Configuration;
property debugLogger
readonly debugLogger: DebugLogger;
property defaultTarget
readonly defaultTarget: string[];
property fileAssociations
readonly fileAssociations: FileAssociation[];
property forceCodeSigning
readonly forceCodeSigning: boolean;
property info
readonly info: Packager;
property packagerOptions
readonly packagerOptions: PackagerOptions;
property platform
readonly platform: Platform;
property platformSpecificBuildOptions
readonly platformSpecificBuildOptions: PlatformSpecificBuildOptions;
property projectDir
readonly projectDir: string;
property resourceList
readonly resourceList: Promise<string[]>;
method artifactPatternConfig
artifactPatternConfig: ( targetSpecificOptions: TargetSpecificOptions | null | undefined, defaultPattern: string | undefined) => { isUserForced: boolean; pattern: string };
method computeAppOutDir
protected computeAppOutDir: (outDir: string, arch: Arch) => string;
method computeSafeArtifactName
computeSafeArtifactName: ( suggestedName: string | null, ext: string, arch?: Arch | null, skipDefaultArch?: boolean, defaultArch?: string, safePattern?: string) => string | null;
method createGetFileMatchersOptions
createGetFileMatchersOptions: ( outDir: string, arch: Arch, customBuildOptions: PlatformSpecificBuildOptions) => GetFileMatchersOptions;
method createTargets
abstract createTargets: ( targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void) => void;
method createTransformerForExtraFiles
protected createTransformerForExtraFiles: ( packContext: AfterPackContext) => FileTransformer | null;
method dispatchArtifactCreated
dispatchArtifactCreated: ( file: string, target: Target | null, arch: Arch | null, safeArtifactName?: string | null) => Promise<void>;
method doGetCscPassword
protected doGetCscPassword: () => string | null | undefined;
method doPack
protected doPack: ( outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>, sign?: boolean, disableAsarIntegrity?: boolean) => Promise<void>;
method doSignAfterPack
protected doSignAfterPack: ( outDir: string, appOutDir: string, platformName: ElectronPlatformName, arch: Arch, platformSpecificBuildOptions: DC, targets: Array<Target>) => Promise<void>;
method expandArtifactBeautyNamePattern
expandArtifactBeautyNamePattern: ( targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null) => string;
method expandArtifactNamePattern
expandArtifactNamePattern: ( targetSpecificOptions: TargetSpecificOptions | null | undefined, ext: string, arch?: Arch | null, defaultPattern?: string, skipDefaultArch?: boolean, defaultArch?: string) => string;
method expandMacro
expandMacro: ( pattern: string, arch?: string | null, extra?: any, isProductNameSanitized?: boolean) => string;
method generateName2
generateName2: ( ext: string | null, classifier: string | null | undefined, deployment: boolean) => string;
method getCscLink
protected getCscLink: ( extraEnvName?: string | null) => string | null | undefined;
method getCscPassword
protected getCscPassword: () => string;
method getDefaultFrameworkIcon
getDefaultFrameworkIcon: () => string | null;
method getElectronDestinationDir
getElectronDestinationDir: (appOutDir: string) => string;
method getElectronSrcDir
getElectronSrcDir: (dist: string) => string;
method getIconPath
getIconPath: () => Promise<string | null>;
method getMacOsResourcesDir
getMacOsResourcesDir: (appOutDir: string) => string;
method getOrConvertIcon
protected getOrConvertIcon: (format: IconFormat) => Promise<string | null>;
method getResource
getResource: ( custom: string | null | undefined, ...names: Array<string>) => Promise<string | null>;
method getResourcesDir
getResourcesDir: (appOutDir: string) => string;
method getTempFile
getTempFile: (suffix: string) => Promise<string>;
method pack
pack: ( outDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager) => Promise<any>;
method packageInDistributableFormat
protected packageInDistributableFormat: ( appOutDir: string, arch: Arch, targets: Array<Target>, taskManager: AsyncTaskManager) => void;
method prepareAppInfo
protected prepareAppInfo: (appInfo: AppInfo) => AppInfo;
method resolveIcon
resolveIcon: ( sources: Array<string>, fallbackSources: Array<string>, outputFormat: IconFormat) => Promise<Array<IconInfo>>;
method signApp
protected signApp: ( packContext: AfterPackContext, isAsar: boolean) => Promise<boolean>;
class PublishManager
class PublishManager implements PublishContext {}
constructor
constructor( packager: Packager, publishOptions: PublishOptions, cancellationToken?: CancellationToken);
property cancellationToken
readonly cancellationToken: CancellationToken;
property isPublish
readonly isPublish: boolean;
property progress
readonly progress: any;
method awaitTasks
awaitTasks: () => Promise<void>;
method cancelTasks
cancelTasks: () => void;
method getGlobalPublishConfigurations
getGlobalPublishConfigurations: () => Promise<Array<PublishConfiguration> | null>;
method scheduleUpload
scheduleUpload: ( publishConfig: PublishConfiguration, event: UploadTask, appInfo: AppInfo) => void;
class Target
abstract class Target {}
constructor
protected constructor(name: string, isAsyncSupported?: boolean);
property isAsyncSupported
readonly isAsyncSupported: boolean;
property name
readonly name: string;
property options
abstract readonly options: TargetSpecificOptions;
property outDir
abstract readonly outDir: string;
method build
abstract build: (appOutDir: string, arch: Arch) => Promise<any>;
method checkOptions
checkOptions: () => Promise<any>;
method finishBuild
finishBuild: () => Promise<any>;
class WinPackager
class WinPackager extends PlatformPackager<WindowsConfiguration> {}
constructor
constructor(info: Packager);
property computedPublisherName
readonly computedPublisherName: Lazy<string[]>;
property cscInfo
readonly cscInfo: MemoLazy< WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo>;
property defaultTarget
readonly defaultTarget: string[];
property isForceCodeSigningVerification
readonly isForceCodeSigningVerification: boolean;
property lazyCertInfo
readonly lazyCertInfo: MemoLazy< MemoLazy< WindowsConfiguration, FileCodeSigningInfo | CertificateFromStoreInfo >, CertificateInfo>;
property vm
readonly vm: Lazy<VmManager>;
method createTargets
createTargets: ( targets: Array<string>, mapper: (name: string, factory: (outDir: string) => Target) => void) => void;
method createTransformerForExtraFiles
protected createTransformerForExtraFiles: ( packContext: AfterPackContext) => FileTransformer | null;
method doGetCscPassword
protected doGetCscPassword: () => string | undefined | null;
method getIconPath
getIconPath: () => Promise<string | null>;
method sign
sign: (file: string, logMessagePrefix?: string) => Promise<boolean>;
method signAndEditResources
signAndEditResources: ( file: string, arch: Arch, outDir: string, internalName?: string | null, requestedExecutionLevel?: RequestedExecutionLevel | null) => Promise<void>;
method signApp
protected signApp: ( packContext: AfterPackContext, isAsar: boolean) => Promise<boolean>;
Interfaces
interface AppImageOptions
interface AppImageOptions extends CommonLinuxOptions, TargetSpecificOptions {}
property license
readonly license?: string | null;
The path to EULA license file. Defaults to
license.txt
oreula.txt
(or uppercase variants). Only plain text is supported.
interface AppXOptions
interface AppXOptions extends TargetSpecificOptions {}
property addAutoLaunchExtension
readonly addAutoLaunchExtension?: boolean;
Whether to add auto launch extension. Defaults to
true
if [electron-winstore-auto-launch](https://github.com/felixrieseberg/electron-winstore-auto-launch) in the dependencies.
property applicationId
readonly applicationId?: string;
The application id. Defaults to
identityName
. This string contains alpha-numeric fields separated by periods. Each field must begin with an ASCII alphabetic character.
property backgroundColor
readonly backgroundColor?: string | null;
The background color of the app tile. See [Visual Elements](https://msdn.microsoft.com/en-us/library/windows/apps/br211471.aspx). #464646
property customExtensionsPath
readonly customExtensionsPath?: string;
Relative path to custom extensions xml to be included in an
appmanifest.xml
.
property displayName
readonly displayName?: string | null;
A friendly name that can be displayed to users. Corresponds to [Properties.DisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211432.aspx). Defaults to the application product name.
property electronUpdaterAware
readonly electronUpdaterAware?: boolean;
false
property identityName
readonly identityName?: string | null;
The name. Corresponds to [Identity.Name](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx). Defaults to the [application name](/configuration/configuration#Metadata-name).
property languages
readonly languages?: Array<string> | string | null;
The list of [supported languages](https://docs.microsoft.com/en-us/windows/uwp/globalizing/manage-language-and-region#specify-the-supported-languages-in-the-apps-manifest) that will be listed in the Windows Store. The first entry (index 0) will be the default language. Defaults to en-US if omitted.
property makeappxArgs
readonly makeappxArgs?: Array<string> | null;
property maxVersionTested
readonly maxVersionTested?: string | null;
Set the
MaxVersionTested
field in the appx manifest.xml arch === Arch.arm64 ? "10.0.16299.0" : "10.0.14316.0"
property minVersion
readonly minVersion?: string | null;
Set the MinVersion field in the appx manifest.xml arch === Arch.arm64 ? "10.0.16299.0" : "10.0.14316.0"
property publisher
readonly publisher?: string | null;
The Windows Store publisher. Not used if AppX is build for testing. See [AppX Package Code Signing](#appx-package-code-signing) below.
property publisherDisplayName
readonly publisherDisplayName?: string | null;
A friendly name for the publisher that can be displayed to users. Corresponds to [Properties.PublisherDisplayName](https://msdn.microsoft.com/en-us/library/windows/apps/br211460.aspx). Defaults to company name from the application metadata.
property setBuildNumber
readonly setBuildNumber?: boolean;
Whether to set build number. See https://github.com/electron-userland/electron-builder/issues/3875 false
property showNameOnTiles
readonly showNameOnTiles?: boolean;
Whether to overlay the app's name on top of tile images on the Start screen. Defaults to
false
. (https://docs.microsoft.com/en-us/uwp/schemas/appxpackage/uapmanifestschema/element-uap-shownameontiles) in the dependencies. false
interface ArtifactBuildStarted
interface ArtifactBuildStarted {}
property arch
readonly arch: Arch | null;
property file
readonly file: string;
property targetPresentableName
readonly targetPresentableName: string;
interface ArtifactCreated
interface ArtifactCreated extends UploadTask {}
property isWriteUpdateInfo
readonly isWriteUpdateInfo?: boolean;
property packager
readonly packager: PlatformPackager<any>;
property publishConfig
readonly publishConfig?: PublishConfiguration | null;
property safeArtifactName
readonly safeArtifactName?: string | null;
property target
readonly target: Target | null;
property updateInfo
updateInfo?: any;
interface AsarOptions
interface AsarOptions {}
property ordering
ordering?: string | null;
property smartUnpack
smartUnpack?: boolean;
Whether to automatically unpack executables files. true
interface AuthorMetadata
interface AuthorMetadata {}
interface BeforeBuildContext
interface BeforeBuildContext {}
property appDir
readonly appDir: string;
property arch
readonly arch: string;
property electronVersion
readonly electronVersion: string;
property platform
readonly platform: Platform;
interface BuildResult
interface BuildResult {}
property artifactPaths
readonly artifactPaths: Array<string>;
property configuration
readonly configuration: Configuration;
property outDir
readonly outDir: string;
property platformToTargets
readonly platformToTargets: Map<Platform, Map<string, Target>>;
interface CertificateFromStoreInfo
interface CertificateFromStoreInfo {}
property isLocalMachineStore
isLocalMachineStore: boolean;
property store
store: string;
property subject
subject: string;
property thumbprint
thumbprint: string;
interface CommonLinuxOptions
interface CommonLinuxOptions {}
property category
readonly category?: string | null;
The [application category](https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry).
property description
readonly description?: string | null;
As [description](/configuration/configuration#Metadata-description) from application package.json, but allows you to specify different for Linux.
property desktop
readonly desktop?: any | null;
The [Desktop file](https://developer.gnome.org/documentation/guidelines/maintainer/integrating.html#desktop-files) entries (name to value).
property executableArgs
readonly executableArgs?: Array<string> | null;
The executable parameters. Pass to executableName
property mimeTypes
readonly mimeTypes?: Array<string> | null;
The mime types in addition to specified in the file associations. Use it if you don't want to register a new mime type, but reuse existing.
property synopsis
readonly synopsis?: string | null;
The [short description](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Description).
interface CommonNsisOptions
interface CommonNsisOptions {}
property customNsisBinary
readonly customNsisBinary?: CustomNsisBinary | null;
Allows you to provide your own
makensis
, such as one with support for debug logging via LogSet and LogText. (Logging also requires optiondebugLogging = true
)
property guid
readonly guid?: string | null;
See [GUID vs Application Name](../configuration/nsis#guid-vs-application-name).
property unicode
readonly unicode?: boolean;
Whether to create [Unicode installer](http://nsis.sourceforge.net/Docs/Chapter1.html#intro-unicode). true
property useZip
readonly useZip?: boolean;
false
property warningsAsErrors
readonly warningsAsErrors?: boolean;
If
warningsAsErrors
istrue
(default): NSIS will treat warnings as errors. IfwarningsAsErrors
isfalse
: NSIS will allow warnings. true
interface CommonWindowsInstallerConfiguration
interface CommonWindowsInstallerConfiguration {}
property createDesktopShortcut
readonly createDesktopShortcut?: boolean | 'always';
Whether to create desktop shortcut. Set to
always
if to recreate also on reinstall (even if removed by user). true
property createStartMenuShortcut
readonly createStartMenuShortcut?: boolean;
Whether to create start menu shortcut. true
property menuCategory
readonly menuCategory?: boolean | string;
Whether to create submenu for start menu shortcut and program files directory. If
true
, company name will be used. Or string value. false
property oneClick
readonly oneClick?: boolean;
property perMachine
readonly perMachine?: boolean;
Whether to install per all users (per-machine). false
property runAfterFinish
readonly runAfterFinish?: boolean;
Whether to run the installed application after finish. For assisted installer corresponding checkbox will be removed. true
property shortcutName
readonly shortcutName?: string | null;
The name that will be used for all shortcuts. Defaults to the application name.
interface Configuration
interface Configuration extends PlatformSpecificBuildOptions {}
Configuration Options
property afterAllArtifactBuild
readonly afterAllArtifactBuild?: | ((context: BuildResult) => Promise<Array<string>> | Array<string>) | string | null;
The function (or path to file or module id) to be [run after all artifacts are build](#afterAllArtifactBuild).
property afterExtract
readonly afterExtract?: | ((context: AfterExtractContext) => Promise<any> | any) | string | null;
The function (or path to file or module id) to be [run after the prebuilt Electron binary has been extracted to the output directory](#afterextract)
property afterPack
readonly afterPack?: | ((context: AfterPackContext) => Promise<any> | any) | string | null;
The function (or path to file or module id) to be [run after pack](#afterpack) (but before pack into distributable format and sign).
property afterSign
readonly afterSign?: | ((context: AfterPackContext) => Promise<any> | any) | string | null;
The function (or path to file or module id) to be [run after pack and sign](#aftersign) (but before pack into distributable format).
property apk
readonly apk?: LinuxTargetSpecificOptions | null;
property appId
readonly appId?: string | null;
The application id. Used as [CFBundleIdentifier](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-102070) for MacOS and as [Application User Model ID](https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx) for Windows (NSIS target only, Squirrel.Windows not supported). It is strongly recommended that an explicit ID is set. com.electron.${name}
property appImage
readonly appImage?: AppImageOptions | null;
AppImage options.
property appx
readonly appx?: AppXOptions | null;
property appxManifestCreated
readonly appxManifestCreated?: | ((path: string) => Promise<any> | any) | string | null;
Appx manifest created on disk - not packed into .appx package yet.
property artifactBuildCompleted
readonly artifactBuildCompleted?: | ((context: ArtifactCreated) => Promise<any> | any) | string | null;
The function (or path to file or module id) to be run on artifact build completed.
property artifactBuildStarted
readonly artifactBuildStarted?: | ((context: ArtifactBuildStarted) => Promise<any> | any) | string | null;
The function (or path to file or module id) to be run on artifact build start.
property beforeBuild
readonly beforeBuild?: | ((context: BeforeBuildContext) => Promise<any>) | string | null;
The function (or path to file or module id) to be run before dependencies are installed or rebuilt. Works when
npmRebuild
is set totrue
. Resolving tofalse
will skip dependencies install or rebuild.If provided and
node_modules
are missing, it will not invoke production dependencies check.
property beforePack
readonly beforePack?: | ((context: BeforePackContext) => Promise<any> | any) | string | null;
The function (or path to file or module id) to be [run before pack](#beforepack)
property buildDependenciesFromSource
buildDependenciesFromSource?: boolean;
Whether to build the application native dependencies from source. false
property buildNumber
readonly buildNumber?: string | null;
The build number. Maps to the
--iteration
flag for builds using FPM on Linux. If not defined, then it will fallback toBUILD_NUMBER
orTRAVIS_BUILD_NUMBER
orAPPVEYOR_BUILD_NUMBER
orCIRCLE_BUILD_NUM
orBUILD_BUILDNUMBER
orCI_PIPELINE_IID
env.
property buildVersion
readonly buildVersion?: string | null;
The build version. Maps to the
CFBundleVersion
on macOS, andFileVersion
metadata property on Windows. Defaults to theversion
. IfbuildVersion
is not defined andbuildNumber
(or one of thebuildNumber
envs) is defined, it will be used as a build version (version.buildNumber
).
property copyright
readonly copyright?: string | null;
The human-readable copyright line for the app. Copyright © year ${author}
property deb
readonly deb?: DebOptions | null;
Debian package options.
property directories
readonly directories?: MetadataDirectories | null;
property disableSanityCheckAsar
readonly disableSanityCheckAsar?: boolean;
Whether to disable sanity check asar package (useful for custom electron forks that implement their own encrypted integrity validation) false
property dmg
readonly dmg?: DmgOptions | null;
macOS DMG options.
property downloadAlternateFFmpeg
readonly downloadAlternateFFmpeg?: boolean;
Whether to download the alternate FFmpeg library from Electron's release assets and replace the default FFmpeg library prior to signing
property electronBranding
readonly electronBranding?: ElectronBrandingOptions;
The branding used by Electron's distributables. This is needed if a fork has modified Electron's BRANDING.json file.
property electronCompile
readonly electronCompile?: boolean;
Whether to use [electron-compile](http://github.com/electron/electron-compile) to compile app. Defaults to
true
ifelectron-compile
in the dependencies. Andfalse
if in thedevDependencies
or doesn't specified.
property electronDist
readonly electronDist?: | string | ((options: PrepareApplicationStageDirectoryOptions) => string);
Returns the path to custom Electron build (e.g.
~/electron/out/R
). Zip files must follow the patternelectron-v${version}-${platformName}-${arch}.zip
, otherwise it will be assumed to be an unpacked Electron app directory
property electronDownload
readonly electronDownload?: ElectronDownloadOptions;
The [electron-download](https://github.com/electron-userland/electron-download#usage) options.
property electronVersion
electronVersion?: string | null;
The version of electron you are packaging for. Defaults to version of
electron
,electron-prebuilt
orelectron-prebuilt-compile
dependency.
property extends
extends?: Array<string> | string | null;
The name of a built-in configuration preset (currently, only
react-cra
is supported) or any number of paths to config files (relative to project dir).The latter allows to mixin a config from multiple other configs, as if you
Object.assign
them, but properly combinefiles
glob patterns.If
react-scripts
in the app dependencies,react-cra
will be set automatically. Set tonull
to disable automatic detection.
property extraMetadata
readonly extraMetadata?: any;
Inject properties to
package.json
.
property flatpak
readonly flatpak?: FlatpakOptions | null;
Flatpak options.
property forceCodeSigning
readonly forceCodeSigning?: boolean;
Whether to fail if the application is not signed (to prevent unsigned app if code signing configuration is not correct). false
property framework
readonly framework?: string | null;
The framework name. One of
electron
,proton
,libui
. Defaults toelectron
.
property freebsd
readonly freebsd?: LinuxTargetSpecificOptions | null;
property includePdb
readonly includePdb?: boolean;
Whether to include PDB files. false
property includeSubNodeModules
includeSubNodeModules?: boolean;
Whether to include *all* of the submodules node_modules directories false
property launchUiVersion
readonly launchUiVersion?: boolean | string | null;
*libui-based frameworks only* The version of LaunchUI you are packaging for. Applicable for Windows only. Defaults to version suitable for used framework version.
property linux
readonly linux?: LinuxConfiguration | null;
Options related to how build Linux targets.
property mac
readonly mac?: MacConfiguration | null;
Options related to how build macOS targets.
property mas
readonly mas?: MasConfiguration | null;
MAS (Mac Application Store) options.
property masDev
readonly masDev?: MasConfiguration | null;
MAS (Mac Application Store) development options (
mas-dev
target).
property msi
readonly msi?: MsiOptions | null;
property msiProjectCreated
readonly msiProjectCreated?: | ((path: string) => Promise<any> | any) | string | null;
MSI project created on disk - not packed into .msi package yet.
property msiWrapped
readonly msiWrapped?: MsiWrappedOptions | null;
property nativeRebuilder
readonly nativeRebuilder?: 'legacy' | 'sequential' | 'parallel' | null;
Use
legacy
app-builder binary for installing native dependencies, or@electron/rebuild
insequential
orparallel
compilation modes. sequential
property nodeGypRebuild
readonly nodeGypRebuild?: boolean;
Whether to execute
node-gyp rebuild
before starting to package the app.Don't [use](https://github.com/electron-userland/electron-builder/issues/683#issuecomment-241214075) [npm](http://electron.atom.io/docs/tutorial/using-native-node-modules/#using-npm) (neither
.npmrc
) for configuring electron headers. Useelectron-builder node-gyp-rebuild
instead. false
property nodeVersion
readonly nodeVersion?: string | null;
*libui-based frameworks only* The version of NodeJS you are packaging for. You can set it to
current
to set the Node.js version that you use to run.
property npmArgs
readonly npmArgs?: Array<string> | string | null;
Additional command line arguments to use when installing app native deps.
property npmRebuild
readonly npmRebuild?: boolean;
Whether to [rebuild](https://docs.npmjs.com/cli/rebuild) native dependencies before starting to package the app. true
property nsis
readonly nsis?: NsisOptions | null;
property nsisWeb
readonly nsisWeb?: NsisWebOptions | null;
property onNodeModuleFile
readonly onNodeModuleFile?: ((path: string) => void | boolean) | string | null;
The function (or path to file or module id) to be [run on each node module](#onnodemodulefile) file. Returning
true
/false
will determine whether to force include or to use the default copier logic
property p5p
readonly p5p?: LinuxTargetSpecificOptions | null;
property pacman
readonly pacman?: LinuxTargetSpecificOptions | null;
property pkg
readonly pkg?: PkgOptions | null;
macOS PKG options.
property portable
readonly portable?: PortableOptions | null;
property productName
readonly productName?: string | null;
As [name](#Metadata-name), but allows you to specify a product name for your executable which contains spaces and other special characters not allowed in the [name property](https://docs.npmjs.com/files/package.json#name). If not specified inside of the
build
configuration,productName
property defined at the top level ofpackage.json
is used. If not specified at the top level ofpackage.json
, [name property](https://docs.npmjs.com/files/package.json#name) is used.
property removePackageKeywords
readonly removePackageKeywords?: boolean;
Whether to remove
keywords
field frompackage.json
files.true
property removePackageScripts
readonly removePackageScripts?: boolean;
Whether to remove
scripts
field frompackage.json
files.true
property rpm
readonly rpm?: LinuxTargetSpecificOptions | null;
property snap
readonly snap?: SnapOptions | null;
Snap options.
property squirrelWindows
readonly squirrelWindows?: SquirrelWindowsOptions | null;
property win
readonly win?: WindowsConfiguration | null;
Options related to how build Windows targets.
interface CustomWindowsSignTaskConfiguration
interface CustomWindowsSignTaskConfiguration extends WindowsSignTaskConfiguration {}
method computeSignToolArgs
computeSignToolArgs: (isWin: boolean) => Array<string>;
interface DebOptions
interface DebOptions extends LinuxTargetSpecificOptions {}
property depends
readonly depends?: Array<string> | null;
Package dependencies. Defaults to
["gconf2", "gconf-service", "libnotify4", "libappindicator1", "libxtst6", "libnss3"]
. If need to support Debian,libappindicator1
should be removed, it is [deprecated in Debian](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037). If need to support KDE,gconf2
andgconf-service
should be removed as it's no longer used [by GNOME](https://packages.debian.org/bullseye/gconf2).
property packageCategory
readonly packageCategory?: string | null;
The [package category](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Section).
property priority
readonly priority?: string | null;
The [Priority](https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Priority) attribute.
property recommends
readonly recommends?: Array<string> | null;
The [recommended package dependencies](https://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps)..
interface DmgContent
interface DmgContent {}
property name
name?: string;
The name of the file within the DMG. Defaults to basename of
path
.
property path
path?: string;
The path of the file within the DMG.
property type
type?: 'link' | 'file' | 'dir';
property x
x: number;
The device-independent pixel offset from the left of the window to the **center** of the icon.
property y
y: number;
The device-independent pixel offset from the top of the window to the **center** of the icon.
interface DmgOptions
interface DmgOptions extends TargetSpecificOptions {}
property background
background?: string | null;
The path to background image (default:
build/background.tiff
orbuild/background.png
if exists). The resolution of this file determines the resolution of the installer window. If background is not specified, usewindow.size
. Default locations expected background size to be 540x380.See Also
[DMG with Retina background support](http://stackoverflow.com/a/11204769/1910191).
property backgroundColor
backgroundColor?: string | null;
The background color (accepts css colors). Defaults to
#ffffff
(white) if no background image.
property contents
contents?: Array<DmgContent>;
The content — to customize icon locations. The x and y coordinates refer to the position of the **center** of the icon (at 1x scale), and do not take the label into account.
property format
format?: 'UDRW' | 'UDRO' | 'UDCO' | 'UDZO' | 'UDBZ' | 'ULFO';
The disk image format.
ULFO
(lzfse-compressed image (OS X 10.11+ only)). UDZO
property icon
icon?: string | null;
The path to DMG icon (volume icon), which will be shown when mounted, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. Defaults to the application icon (
build/icon.icns
).
property iconSize
readonly iconSize?: number | null;
The size of all the icons inside the DMG. 80
property iconTextSize
readonly iconTextSize?: number | null;
The size of all the icon texts inside the DMG. 12
property internetEnabled
readonly internetEnabled?: boolean;
Whether to create internet-enabled disk image (when it is downloaded using a browser it will automatically decompress the image, put the application on the desktop, unmount and remove the disk image file). false
property sign
readonly sign?: boolean;
Whether to sign the DMG or not. Signing is not required and will lead to unwanted errors in combination with notarization requirements. false
property title
readonly title?: string | null;
The title of the produced DMG, which will be shown when mounted (volume name).
Macro
${productName}
,${version}
and${name}
are supported. ${productName} ${version}
property window
window?: DmgWindow;
The DMG window position and size. With y co-ordinates running from bottom to top.
The Finder makes sure that the window will be on the user’s display, so if you want your window at the top left of the display you could use
"x": 0, "y": 100000
as the x, y co-ordinates. It is not to be possible to position the window relative to the [top left](https://github.com/electron-userland/electron-builder/issues/3990#issuecomment-512960957) or relative to the center of the user’s screen.
property writeUpdateInfo
writeUpdateInfo?: boolean;
true
interface DmgWindow
interface DmgWindow {}
property height
height?: number;
The height. Defaults to background image height or 380.
property width
width?: number;
The width. Defaults to background image width or 540.
property x
x?: number;
The X position relative to left of the screen. 400
property y
y?: number;
The Y position relative to bottom of the screen. 100
interface ElectronBrandingOptions
interface ElectronBrandingOptions {}
Electron distributables branding options.
See Also
[Electron BRANDING.json](https://github.com/electron/electron/blob/master/shell/app/BRANDING.json).
property productName
productName?: string;
property projectName
projectName?: string;
interface ElectronDownloadOptions
interface ElectronDownloadOptions {}
property arch
arch?: string;
property cache
cache?: string | null;
The [cache location](https://github.com/electron-userland/electron-download#cache-location).
property customDir
customDir?: string | null;
property customFilename
customFilename?: string | null;
property isVerifyChecksum
isVerifyChecksum?: boolean;
property mirror
mirror?: string | null;
The mirror.
property platform
platform?: ElectronPlatformName;
property strictSSL
strictSSL?: boolean;
property version
version?: string;
interface FileAssociation
interface FileAssociation {}
File associations.
macOS (corresponds to [CFBundleDocumentTypes](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685)), NSIS, and MSI only.
On Windows (NSIS) works only if [nsis.perMachine](https://electron.build/configuration/configuration#NsisOptions-perMachine) is set to
true
.
property description
readonly description?: string | null;
*windows-only.* The description.
property ext
readonly ext: string | Array<string>;
The extension (minus the leading period). e.g.
png
.
property icon
readonly icon?: string | null;
The path to icon (
.icns
for MacOS and.ico
for Windows), relative tobuild
(build resources directory). Defaults to${firstExt}.icns
/${firstExt}.ico
(if several extensions specified, first is used) or to application icon.Not supported on Linux, file issue if need (default icon will be
x-office-document
). Not supported on MSI.
property isPackage
readonly isPackage?: boolean;
*macOS-only* Whether the document is distributed as a bundle. If set to true, the bundle directory is treated as a file. Corresponds to
LSTypeIsPackage
.
property mimeType
readonly mimeType?: string | null;
*linux-only.* The mime-type.
property name
readonly name?: string | null;
The name. e.g.
PNG
. Defaults toext
.
property rank
readonly rank?: string;
*macOS-only* The app’s rank with respect to the type. The value can be
Owner
,Default
,Alternate
, orNone
. Corresponds toLSHandlerRank
. Default
property role
readonly role?: string;
*macOS-only* The app’s role with respect to the type. The value can be
Editor
,Viewer
,Shell
, orNone
. Corresponds toCFBundleTypeRole
. Editor
interface FileCodeSigningInfo
interface FileCodeSigningInfo {}
interface FileSet
interface FileSet {}
property filter
filter?: Array<string> | string;
The [glob patterns](/file-patterns).
property from
from?: string;
The source path relative to the project directory.
property to
to?: string;
The destination path relative to the app's content directory for
extraFiles
and the app's resource directory forextraResources
.
interface FlatpakOptions
interface FlatpakOptions extends CommonLinuxOptions, TargetSpecificOptions {}
property base
readonly base?: string;
Start with the files from the specified application. This can be used to create applications that extend another application. Defaults to [org.electronjs.Electron2.BaseApp](https://github.com/flathub/org.electronjs.Electron2.BaseApp).
See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property baseVersion
readonly baseVersion?: string;
Use this specific version of the application specified in base. Defaults to
20.08
.See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property branch
readonly branch?: string;
The branch to use when exporting the application. Defaults to
master
.See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property files
readonly files?: [string, string][];
Files to copy directly into the app. Should be a list of [source, dest] tuples. Source should be a relative/absolute path to a file/directory to copy into the flatpak, and dest should be the path inside the app install prefix (e.g. /share/applications/).
See [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).
property finishArgs
readonly finishArgs?: string[];
An array of arguments passed to the flatpak build-finish command. Defaults to:
[// Wayland/X11 Rendering"--socket=wayland","--socket=x11","--share=ipc",// Open GL"--device=dri",// Audio output"--socket=pulseaudio",// Read/write home directory access"--filesystem=home",// Allow communication with network"--share=network",// System notifications with libnotify"--talk-name=org.freedesktop.Notifications",]See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property license
readonly license?: string | null;
The path to EULA license file. Defaults to
license.txt
oreula.txt
(or uppercase variants). Only plain text is supported.
property modules
readonly modules?: (string | any)[];
An array of objects specifying the modules to be built in order.
See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property runtime
readonly runtime?: string;
The name of the runtime that the application uses. Defaults to
org.freedesktop.Platform
.See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property runtimeVersion
readonly runtimeVersion?: string;
The version of the runtime that the application uses. Defaults to
20.08
.See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property sdk
readonly sdk?: string;
The name of the development runtime that the application builds with. Defaults to
org.freedesktop.Sdk
.See [flatpak manifest documentation](https://docs.flatpak.org/en/latest/flatpak-builder-command-reference.html#flatpak-manifest).
property symlinks
readonly symlinks?: [string, string][];
Symlinks to create in the app files. Should be a list of [target, location] symlink tuples. Target can be either a relative or absolute path inside the app install prefix, and location should be a absolute path inside the prefix to create the symlink at.
See [@malept/flatpak-bundler documentation](https://github.com/malept/flatpak-bundler#build-options).
property useWaylandFlags
readonly useWaylandFlags?: boolean;
Whether to enable the Wayland specific flags (
--enable-features=UseOzonePlatform --ozone-platform=wayland
) in the wrapper script. These flags are only available starting with Electron version 12. Defaults tofalse
.
interface ForgeOptions
interface ForgeOptions {}
property dir
readonly dir: string;
interface Framework
interface Framework {}
property defaultAppIdPrefix
readonly defaultAppIdPrefix: string;
property distMacOsAppName
readonly distMacOsAppName: string;
property isCopyElevateHelper
readonly isCopyElevateHelper: boolean;
property isNpmRebuildRequired
readonly isNpmRebuildRequired: boolean;
property macOsDefaultTargets
readonly macOsDefaultTargets: Array<string>;
property name
readonly name: string;
property version
readonly version: string;
method afterPack
afterPack: (context: AfterPackContext) => Promise<any>;
method beforeCopyExtraFiles
beforeCopyExtraFiles: (options: BeforeCopyExtraFilesOptions) => Promise<any>;
method createTransformer
createTransformer: () => FileTransformer | null;
method getDefaultIcon
getDefaultIcon: (platform: Platform) => string | null;
method getExcludedDependencies
getExcludedDependencies: (platform: Platform) => Array<string> | null;
method getMainFile
getMainFile: (platform: Platform) => string | null;
method prepareApplicationStageDirectory
prepareApplicationStageDirectory: ( options: PrepareApplicationStageDirectoryOptions) => Promise<any>;
interface LinuxConfiguration
interface LinuxConfiguration extends CommonLinuxOptions, PlatformSpecificBuildOptions {}
property icon
readonly icon?: string;
The path to icon set directory or one png file, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. The icon filename must contain the size (e.g. 32x32.png) of the icon. By default will be generated automatically based on the macOS icns file.
property maintainer
readonly maintainer?: string | null;
The maintainer. Defaults to [author](/configuration/configuration#Metadata-author).
property packageCategory
readonly packageCategory?: string | null;
backward compatibility + to allow specify fpm-only category for all possible fpm targets in one place
property target
readonly target?: TargetConfigType;
Target package type: list of
AppImage
,flatpak
,snap
,deb
,rpm
,freebsd
,pacman
,p5p
,apk
,7z
,zip
,tar.xz
,tar.lz
,tar.gz
,tar.bz2
,dir
.electron-builder [docker image](/multi-platform-build#docker) can be used to build Linux targets on any platform.
Please [do not put an AppImage into another archive](https://github.com/probonopd/AppImageKit/wiki/Creating-AppImages#common-mistake) like a .zip or .tar.gz. AppImage
property vendor
readonly vendor?: string | null;
The vendor. Defaults to [author](/configuration/configuration#Metadata-author).
interface LinuxTargetSpecificOptions
interface LinuxTargetSpecificOptions extends CommonLinuxOptions, TargetSpecificOptions {}
property afterInstall
readonly afterInstall?: string | null;
property afterRemove
readonly afterRemove?: string | null;
property compression
readonly compression?: 'gz' | 'bzip2' | 'xz' | 'lzo' | null;
The compression type. xz
property depends
readonly depends?: Array<string> | null;
Package dependencies.
property fpm
readonly fpm?: Array<string> | null;
*Advanced only* The [fpm](https://fpm.readthedocs.io/en/latest/cli-reference.html) options.
Example:
["--before-install=build/deb-preinstall.sh", "--after-upgrade=build/deb-postinstall.sh"]
property icon
readonly icon?: string;
property maintainer
readonly maintainer?: string | null;
property packageCategory
readonly packageCategory?: string | null;
The package category.
property packageName
readonly packageName?: string | null;
The name of the package.
property vendor
readonly vendor?: string | null;
interface MacConfiguration
interface MacConfiguration extends PlatformSpecificBuildOptions {}
property additionalArguments
readonly additionalArguments?: Array<string> | null;
Array of strings specifying additional arguments to pass to the
codesign
command used to sign a specific file.Some subresources that you may include in your Electron app may need to be signed with --deep, this is not typically safe to apply to the entire Electron app and therefore should be applied to just your file. Usage Example:
['--deep']
property binaries
readonly binaries?: Array<string> | null;
Paths of any extra binaries that need to be signed.
property bundleShortVersion
readonly bundleShortVersion?: string | null;
The
CFBundleShortVersionString
. Do not use it unless you need to.
property bundleVersion
readonly bundleVersion?: string | null;
The
CFBundleVersion
. Do not use it unless [you need to](https://github.com/electron-userland/electron-builder/issues/565#issuecomment-230678643).
property category
readonly category?: string | null;
The application category type, as shown in the Finder via *View -> Arrange by Application Category* when viewing the Applications directory.
For example,
"category": "public.app-category.developer-tools"
will set the application category to *Developer Tools*.Valid values are listed in [Apple's documentation](https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html#//apple_ref/doc/uid/TP40009250-SW8).
property cscInstallerKeyPassword
readonly cscInstallerKeyPassword?: string | null;
property cscInstallerLink
readonly cscInstallerLink?: string | null;
property darkModeSupport
readonly darkModeSupport?: boolean;
Whether a dark mode is supported. If your app does have a dark mode, you can make your app follow the system-wide dark mode setting. false
property entitlements
readonly entitlements?: string | null;
The path to entitlements file for signing the app.
build/entitlements.mac.plist
will be used if exists (it is a recommended way to set). MAS entitlements is specified in the [mas](/configuration/mas). See [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples. Be aware that your app may crash if the right entitlements are not set likecom.apple.security.cs.allow-jit
for example on arm64 builds with Electron 20+. See [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.
property entitlementsInherit
readonly entitlementsInherit?: string | null;
The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution.
build/entitlements.mac.inherit.plist
will be used if exists (it is a recommended way to set). See [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.This option only applies when signing with
entitlements
provided.
property entitlementsLoginHelper
readonly entitlementsLoginHelper?: string | null;
Path to login helper entitlement file. When using App Sandbox, the the
com.apple.security.inherit
key that is normally in the inherited entitlements cannot be inherited since the login helper is a standalone executable. Defaults to the value provided forentitlements
. This option only applies when signing withentitlements
provided.
property extendInfo
readonly extendInfo?: any;
The extra entries for
Info.plist
.
property extraDistFiles
readonly extraDistFiles?: Array<string> | string | null;
Extra files to put in archive. Not applicable for
tar.*
.
property gatekeeperAssess
readonly gatekeeperAssess?: boolean;
Whether to let
@electron/osx-sign
validate the signing or not. false
property hardenedRuntime
readonly hardenedRuntime?: boolean;
Whether your app has to be signed with hardened runtime. true
property helperBundleId
readonly helperBundleId?: string | null;
The bundle identifier to use in the application helper's plist. ${appBundleIdentifier}.helper
property helperEHBundleId
readonly helperEHBundleId?: string | null;
The bundle identifier to use in the EH helper's plist. ${appBundleIdentifier}.helper.EH
property helperGPUBundleId
readonly helperGPUBundleId?: string | null;
The bundle identifier to use in the GPU helper's plist. ${appBundleIdentifier}.helper.GPU
property helperNPBundleId
readonly helperNPBundleId?: string | null;
The bundle identifier to use in the NP helper's plist. ${appBundleIdentifier}.helper.NP
property helperPluginBundleId
readonly helperPluginBundleId?: string | null;
The bundle identifier to use in the Plugin helper's plist. ${appBundleIdentifier}.helper.Plugin
property helperRendererBundleId
readonly helperRendererBundleId?: string | null;
The bundle identifier to use in the Renderer helper's plist. ${appBundleIdentifier}.helper.Renderer
property icon
readonly icon?: string | null;
The path to application icon. build/icon.icns
property identity
readonly identity?: string | null;
The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](/code-signing) instead of specifying this option. MAS installer identity is specified in the [mas](/configuration/mas).
property mergeASARs
readonly mergeASARs?: boolean;
Whether to merge ASAR files for different architectures or not.
This option has no effect unless building for "universal" arch. true
property minimumSystemVersion
readonly minimumSystemVersion?: string | null;
The minimum version of macOS required for the app to run. Corresponds to
LSMinimumSystemVersion
.
property notarize
readonly notarize?: NotarizeNotaryOptions | boolean | null;
Options to use for @electron/notarize (ref: https://github.com/electron/notarize). Use
false
to explicitly disableNote: In order to activate the notarization step You MUST specify one of the following via environment variables: 1.
APPLE_API_KEY
,APPLE_API_KEY_ID
andAPPLE_API_ISSUER
. 2.APPLE_ID
,APPLE_APP_SPECIFIC_PASSWORD
, andAPPLE_TEAM_ID
3.APPLE_KEYCHAIN
andAPPLE_KEYCHAIN_PROFILE
For security reasons it is recommended to use the first option (see https://github.com/electron-userland/electron-builder/issues/7859)
property preAutoEntitlements
readonly preAutoEntitlements?: boolean;
Whether to enable entitlements automation from
@electron/osx-sign
. true
property provisioningProfile
readonly provisioningProfile?: string | null;
The path to the provisioning profile to use when signing, absolute or relative to the app root.
property requirements
readonly requirements?: string | null;
Path of [requirements file](https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/RequirementLang/RequirementLang.html) used in signing. Not applicable for MAS.
property sign
readonly sign?: CustomMacSign | string | null;
The custom function (or path to file or module id) to sign an app bundle.
property signIgnore
readonly signIgnore?: Array<string> | string | null;
Regex or an array of regex's that signal skipping signing a file.
property singleArchFiles
readonly singleArchFiles?: string | null;
Minimatch pattern of paths that are allowed to be present in one of the ASAR files, but not in the other.
This option has no effect unless building for "universal" arch and applies only if
mergeASARs
istrue
.
property strictVerify
readonly strictVerify?: boolean;
Whether to let
@electron/osx-sign
verify the contents or not. true
property target
readonly target?: | Array<MacOsTargetName | TargetConfiguration> | MacOsTargetName | TargetConfiguration | null;
The target package type: list of
default
,dmg
,mas
,mas-dev
,pkg
,7z
,zip
,tar.xz
,tar.lz
,tar.gz
,tar.bz2
,dir
. Defaults todefault
(dmg
andzip
for Squirrel.Mac). Note: Squirrel.Mac auto update mechanism requires bothdmg
andzip
to be enabled, even when onlydmg
is used. Disablingzip
will break auto update indmg
packages.
property timestamp
readonly timestamp?: string | null;
Specify the URL of the timestamp authority server
property type
readonly type?: 'distribution' | 'development' | null;
Whether to sign app for development or for distribution. distribution
property x64ArchFiles
readonly x64ArchFiles?: string | null;
Minimatch pattern of paths that are allowed to be x64 binaries in both ASAR files
This option has no effect unless building for "universal" arch and applies only if
mergeASARs
istrue
.
interface MasConfiguration
interface MasConfiguration extends MacConfiguration {}
property binaries
readonly binaries?: Array<string> | null;
Paths of any extra binaries that need to be signed.
property entitlements
readonly entitlements?: string | null;
The path to entitlements file for signing the app.
build/entitlements.mas.plist
will be used if exists (it is a recommended way to set). See [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples. Be aware that your app may crash if the right entitlements are not set likecom.apple.security.cs.allow-jit
for example on arm64 builds with Electron 20+. See [Signing and Notarizing macOS Builds from the Electron documentation](https://www.electronjs.org/docs/latest/tutorial/code-signing#signing--notarizing-macos-builds) for more information.
property entitlementsInherit
readonly entitlementsInherit?: string | null;
The path to child entitlements which inherit the security settings for signing frameworks and bundles of a distribution.
build/entitlements.mas.inherit.plist
will be used if exists (it is a recommended way to set). See [this folder in osx-sign's repository](https://github.com/electron/osx-sign/tree/main/entitlements) for examples.
interface Metadata
interface Metadata {}
property author
readonly author?: AuthorMetadata | null;
property build
readonly build?: Configuration;
The electron-builder configuration.
property dependencies
readonly dependencies?: { [key: string]: string;};
property description
readonly description?: string;
The application description.
property homepage
readonly homepage?: string | null;
The url to the project [homepage](https://docs.npmjs.com/files/package.json#homepage) (NuGet Package
projectUrl
(optional) or Linux Package URL (required)).If not specified and your project repository is public on GitHub, it will be
https://github.com/${user}/${project}
by default.
property license
readonly license?: string | null;
*linux-only.* The [license](https://docs.npmjs.com/files/package.json#license) name.
property main
readonly main?: string | null;
property name
readonly name?: string;
The application name.
property productName
readonly productName?: string | null;
property repository
readonly repository?: string | RepositoryInfo | null;
The [repository](https://docs.npmjs.com/files/package.json#repository).
property shortVersion
readonly shortVersion?: string | null;
property shortVersionWindows
readonly shortVersionWindows?: string | null;
property type
readonly type?: string;
property version
readonly version?: string;
interface MetadataDirectories
interface MetadataDirectories {}
property app
readonly app?: string | null;
The application directory (containing the application package.json), defaults to
app
,www
or working directory.
property buildResources
readonly buildResources?: string | null;
The path to build resources.
Please note — build resources are not packed into the app. If you need to use some files, e.g. as tray icon, please include required files explicitly:
"files": ["**\/*", "build/icon.*"]
build
property output
readonly output?: string | null;
The output directory. [File macros](/file-patterns#file-macros) are supported. dist
interface MsiOptions
interface MsiOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions {}
property additionalLightArgs
readonly additionalLightArgs?: Array<string> | null;
Any additional arguments to be passed to the light.ext, such as
["-cultures:ja-jp"]
property additionalWixArgs
readonly additionalWixArgs?: Array<string> | null;
Any additional arguments to be passed to the WiX installer compiler, such as
["-ext", "WixUtilExtension"]
property oneClick
readonly oneClick?: boolean;
One-click installation. true
property upgradeCode
readonly upgradeCode?: string | null;
The [upgrade code](https://msdn.microsoft.com/en-us/library/windows/desktop/aa372375(v=vs.85).aspx). Optional, by default generated using app id.
property warningsAsErrors
readonly warningsAsErrors?: boolean;
If
warningsAsErrors
istrue
(default): treat warnings as errors. IfwarningsAsErrors
isfalse
: allow warnings. true
interface MsiWrappedOptions
interface MsiWrappedOptions extends CommonWindowsInstallerConfiguration, TargetSpecificOptions {}
property additionalWixArgs
readonly additionalWixArgs?: Array<string> | null;
Any additional arguments to be passed to the WiX installer compiler, such as
["-ext", "WixUtilExtension"]
property impersonate
readonly impersonate?: boolean;
Determines if the wrapped installer should be executed with impersonation false
property upgradeCode
readonly upgradeCode?: string | null;
The [upgrade code](https://msdn.microsoft.com/en-us/library/windows/desktop/aa372375(v=vs.85).aspx). Optional, by default generated using app id.
property warningsAsErrors
readonly warningsAsErrors?: boolean;
If
warningsAsErrors
istrue
(default): treat warnings as errors. IfwarningsAsErrors
isfalse
: allow warnings. true
property wrappedInstallerArgs
readonly wrappedInstallerArgs?: string | null;
Extra arguments to provide to the wrapped installer (ie: /S for silent install)
interface NotarizeNotaryOptions
interface NotarizeNotaryOptions {}
property teamId
readonly teamId?: string;
The team ID you want to notarize under for when using
notarytool
Deprecated
Set the
APPLE_TEAM_ID
environment variable instead
interface NsisOptions
interface NsisOptions extends CommonNsisOptions, CommonWindowsInstallerConfiguration, TargetSpecificOptions {}
property allowElevation
readonly allowElevation?: boolean;
*assisted installer only.* Allow requesting for elevation. If false, user will have to restart installer with elevated permissions. true
property allowToChangeInstallationDirectory
readonly allowToChangeInstallationDirectory?: boolean;
*assisted installer only.* Whether to allow user to change installation directory. false
property artifactName
readonly artifactName?: string | null;
The [artifact file name template](/configuration/configuration#artifact-file-name-template). Defaults to
${productName} Setup ${version}.${ext}
.
property deleteAppDataOnUninstall
readonly deleteAppDataOnUninstall?: boolean;
*one-click installer only.* Whether to delete app data on uninstall. false
property differentialPackage
differentialPackage?: boolean;
property displayLanguageSelector
readonly displayLanguageSelector?: boolean;
Whether to display a language selection dialog. Not recommended (by default will be detected using OS language). false
property include
readonly include?: string | null;
The path to NSIS include script to customize installer. Defaults to
build/installer.nsh
. See [Custom NSIS script](#custom-nsis-script).
property installerHeader
readonly installerHeader?: string | null;
*assisted installer only.*
MUI_HEADERIMAGE
, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. build/installerHeader.bmp
property installerHeaderIcon
readonly installerHeaderIcon?: string | null;
*one-click installer only.* The path to header icon (above the progress bar), relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. Defaults to
build/installerHeaderIcon.ico
or application icon.
property installerIcon
readonly installerIcon?: string | null;
The path to installer icon, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. Defaults to
build/installerIcon.ico
or application icon.
property installerLanguages
readonly installerLanguages?: Array<string> | string | null;
The installer languages (e.g.
en_US
,de_DE
). Change only if you understand what do you do and for what.
property installerSidebar
readonly installerSidebar?: string | null;
*assisted installer only.*
MUI_WELCOMEFINISHPAGE_BITMAP
, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. Defaults tobuild/installerSidebar.bmp
or${NSISDIR}\\Contrib\\Graphics\\Wizard\\nsis3-metro.bmp
. Image size 164 × 314 pixels.
property language
readonly language?: string | null;
[LCID Dec](https://msdn.microsoft.com/en-au/goglobal/bb964664.aspx), defaults to
1033
(English - United States
).
property license
readonly license?: string | null;
The path to EULA license file. Defaults to
license.txt
oreula.txt
(or uppercase variants). In addition totxt
,rtf
andhtml
supported (don't forget to usetarget="_blank"
for links).Multiple license files in different languages are supported — use lang postfix (e.g.
_de
,_ru
). For example, create fileslicense_de.txt
andlicense_en.txt
in the build resources. If OS language is german,license_de.txt
will be displayed. See map of [language code to name](https://github.com/meikidd/iso-639-1/blob/master/src/data.js).Appropriate license file will be selected by user OS language.
property multiLanguageInstaller
readonly multiLanguageInstaller?: boolean;
Whether to create multi-language installer. Defaults to
unicode
option value.
property oneClick
readonly oneClick?: boolean;
Whether to create one-click installer or assisted. true
property packElevateHelper
readonly packElevateHelper?: boolean;
Whether to pack the elevate executable (required for electron-updater if per-machine installer used or can be used in the future). Ignored if
perMachine
is set totrue
. true
property perMachine
readonly perMachine?: boolean;
Whether to show install mode installer page (choice per-machine or per-user) for assisted installer. Or whether installation always per all users (per-machine).
If
oneClick
istrue
(default): Whether to install per all users (per-machine).If
oneClick
isfalse
andperMachine
istrue
: no install mode installer page, always install per-machine.If
oneClick
isfalse
andperMachine
isfalse
(default): install mode installer page. false
property preCompressedFileExtensions
readonly preCompressedFileExtensions?: Array<string> | string | null;
The file extension of files that will be not compressed. Applicable only for
extraResources
andextraFiles
files. [".avi", ".mov", ".m4v", ".mp4", ".m4p", ".qt", ".mkv", ".webm", ".vmdk"]
property removeDefaultUninstallWelcomePage
readonly removeDefaultUninstallWelcomePage?: boolean;
*assisted installer only.* remove the default uninstall welcome page. false
property script
readonly script?: string | null;
The path to NSIS script to customize installer. Defaults to
build/installer.nsi
. See [Custom NSIS script](#custom-nsis-script).
property selectPerMachineByDefault
readonly selectPerMachineByDefault?: boolean;
Whether to set per-machine or per-user installation as default selection on the install mode installer page.
false
property uninstallDisplayName
readonly uninstallDisplayName?: string;
The uninstaller display name in the control panel. ${productName} ${version}
property uninstallerIcon
readonly uninstallerIcon?: string | null;
The path to uninstaller icon, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. Defaults to
build/uninstallerIcon.ico
or application icon.
property uninstallerSidebar
readonly uninstallerSidebar?: string | null;
*assisted installer only.*
MUI_UNWELCOMEFINISHPAGE_BITMAP
, relative to the [build resources](/configuration/configuration#MetadataDirectories-buildResources) or to the project directory. Defaults toinstallerSidebar
option orbuild/uninstallerSidebar.bmp
orbuild/installerSidebar.bmp
or${NSISDIR}\\Contrib\\Graphics\\Wizard\\nsis3-metro.bmp
interface NsisWebOptions
interface NsisWebOptions extends NsisOptions {}
Web Installer options.
property appPackageUrl
readonly appPackageUrl?: string | null;
The application package download URL. Optional — by default computed using publish configuration.
URL like
https://example.com/download/latest
allows web installer to be version independent (installer will download latest application package). Please note — it is [full URL](https://github.com/electron-userland/electron-builder/issues/1810#issuecomment-317650878).Custom
X-Arch
http header is set to32
or64
.
property artifactName
readonly artifactName?: string | null;
The [artifact file name template](/configuration/configuration#artifact-file-name-template). Defaults to
${productName} Web Setup ${version}.${ext}
.
interface PackagerOptions
interface PackagerOptions {}
property config
readonly config?: Configuration | string | null;
property effectiveOptionComputed
readonly effectiveOptionComputed?: (options: any) => Promise<boolean>;
property linux
linux?: Array<string>;
property mac
mac?: Array<string>;
property platformPackagerFactory
platformPackagerFactory?: | ((info: Packager, platform: Platform) => PlatformPackager<any>) | null;
property prepackaged
readonly prepackaged?: string | null;
property projectDir
projectDir?: string | null;
property targets
targets?: Map<Platform, Map<Arch, Array<string>>>;
property win
win?: Array<string>;
interface PkgBackgroundOptions
interface PkgBackgroundOptions {}
Options for the background image in a PKG installer
property alignment
alignment?: BackgroundAlignment | null;
Alignment of the background image. Options are: center, left, right, top, bottom, topleft, topright, bottomleft, bottomright center
property file
file?: string;
Path to the image to use as an installer background.
property scaling
scaling?: BackgroundScaling | null;
Scaling of the background image. Options are: tofit, none, proportional tofit
interface PkgOptions
interface PkgOptions extends TargetSpecificOptions {}
macOS product archive options.
property allowAnywhere
readonly allowAnywhere?: boolean | null;
Whether can be installed at the root of any volume, including non-system volumes. Otherwise, it cannot be installed at the root of a volume.
Corresponds to [enable_anywhere](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70). true
property allowCurrentUserHome
readonly allowCurrentUserHome?: boolean | null;
Whether can be installed into the current user’s home directory. A home directory installation is done as the current user (not as root), and it cannot write outside of the home directory. If the product cannot be installed in the user’s home directory and be not completely functional from user’s home directory.
Corresponds to [enable_currentUserHome](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70). true
property allowRootDirectory
readonly allowRootDirectory?: boolean | null;
Whether can be installed into the root directory. Should usually be
true
unless the product can be installed only to the user’s home directory.Corresponds to [enable_localSystem](https://developer.apple.com/library/content/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW70). true
property background
readonly background?: PkgBackgroundOptions | null;
Options for the background image for the installer.
property conclusion
readonly conclusion?: string | null;
The path to the conclusion file. This may be used to customize the text on the final "Summary" page of the installer.
property hasStrictIdentifier
readonly hasStrictIdentifier?: boolean | null;
Require identical bundle identifiers at install path? true
property identity
readonly identity?: string | null;
The name of certificate to use when signing. Consider using environment variables [CSC_LINK or CSC_NAME](/code-signing) instead of specifying this option.
property installLocation
readonly installLocation?: string | null;
The install location. [Do not use it](https://stackoverflow.com/questions/12863944/how-do-you-specify-a-default-install-location-to-home-with-pkgbuild) to create per-user package. Mostly never you will need to change this option.
/Applications
would install it as expected into/Applications
if the local system domain is chosen, or into$HOME/Applications
if the home installation is chosen. /Applications
property isRelocatable
readonly isRelocatable?: boolean | null;
Install bundle over previous version if moved by user? true
property isVersionChecked
readonly isVersionChecked?: boolean | null;
Don't install bundle if newer version on disk? true
property license
readonly license?: string | null;
The path to EULA license file. Defaults to
license.txt
oreula.txt
(or uppercase variants). In addition totxt
,rtf
andhtml
supported (don't forget to usetarget="_blank"
for links).
property mustClose
readonly mustClose?: Array<string> | null;
Identifies applications that must be closed before the package is installed.
Corresponds to [must-close](https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW77).
property overwriteAction
readonly overwriteAction?: 'upgrade' | 'update' | null;
Specifies how an existing version of the bundle on disk should be handled when the version in the package is installed.
If you specify upgrade, the bundle in the package atomi-cally replaces any version on disk; this has the effect of deleting old paths that no longer exist in the new version of the bundle.
If you specify update, the bundle in the package overwrites the version on disk, and any files not contained in the package will be left intact; this is appropriate when you are delivering an update-only package.
Another effect of update is that the package bundle will not be installed at all if there is not already a version on disk; this allows a package to deliver an update for an app that the user might have deleted.
upgrade
property productbuild
readonly productbuild?: Array<string> | null;
should be not documented, only to experiment
property scripts
readonly scripts?: string | null;