From 99a6150ea02c91a7e7e657c667328eb734e29b8f Mon Sep 17 00:00:00 2001 From: Mike Maietta Date: Mon, 18 Mar 2024 11:22:51 -0700 Subject: [PATCH] fix: update autoupdate docs to describe module-based support. set `nativeRebuilder` default value to use electron/rebuild (#8140) --- .changeset/wild-socks-chew.md | 5 + docs/auto-update.md | 207 ++++++++++++------ docs/configuration/configuration.md | 2 +- packages/app-builder-lib/scheme.json | 2 +- packages/app-builder-lib/src/configuration.ts | 2 +- packages/app-builder-lib/src/util/yarn.ts | 4 +- 6 files changed, 149 insertions(+), 73 deletions(-) create mode 100644 .changeset/wild-socks-chew.md diff --git a/.changeset/wild-socks-chew.md b/.changeset/wild-socks-chew.md new file mode 100644 index 0000000000..3041b4b151 --- /dev/null +++ b/.changeset/wild-socks-chew.md @@ -0,0 +1,5 @@ +--- +"app-builder-lib": patch +--- + +fix: update autoupdate docs to describe module-based support. set nativeRebuilder default value to use electron/rebuild diff --git a/docs/auto-update.md b/docs/auto-update.md index 4da453edb1..667ce79cac 100644 --- a/docs/auto-update.md +++ b/docs/auto-update.md @@ -40,6 +40,17 @@ All these targets are default, custom configuration is not required. (Though it ```js import { autoUpdater } from "electron-updater" ``` + ESM + ```ts + import electronUpdater, { type AppUpdater } from 'electron-updater'; + + export function getAutoUpdater(): AppUpdater { + // Using destructuring to access autoUpdater due to the CommonJS module of 'electron-updater'. + // It is a workaround for ESM compatibility issues, see https://github.com/electron-userland/electron-builder/issues/7976. + const { autoUpdater } = electronUpdater; + return autoUpdater; + } + ``` 4. Call `autoUpdater.checkForUpdatesAndNotify()`. Or, if you need custom behaviour, implement `electron-updater` events, check examples below. @@ -201,74 +212,134 @@ Emitted on progress. ## builder-util-runtime -* [builder-util-runtime](#module_builder-util-runtime) - * [`.BaseS3Options`](#BaseS3Options) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.BintrayOptions`](#BintrayOptions) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.BlockMap`](#BlockMap) - * [`.BlockMapDataHolder`](#BlockMapDataHolder) - * [`.CustomPublishOptions`](#CustomPublishOptions) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.DownloadOptions`](#DownloadOptions) - * [`.GenericServerOptions`](#GenericServerOptions) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.GithubOptions`](#GithubOptions) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.KeygenOptions`](#KeygenOptions) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.PackageFileInfo`](#PackageFileInfo) ⇐ [BlockMapDataHolder](#BlockMapDataHolder) - * [`.ProgressInfo`](#ProgressInfo) - * [`.PublishConfiguration`](#PublishConfiguration) - * [`.ReleaseNoteInfo`](#ReleaseNoteInfo) - * [`.RequestHeaders`](#RequestHeaders) ⇐ [key: string]: string - * [`.S3Options`](#S3Options) ⇐ [BaseS3Options](electron-builder#BaseS3Options) - * [`.SnapStoreOptions`](#SnapStoreOptions) ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) - * [`.SpacesOptions`](#SpacesOptions) ⇐ [BaseS3Options](electron-builder#BaseS3Options) - * [`.UpdateFileInfo`](#UpdateFileInfo) ⇐ [BlockMapDataHolder](#BlockMapDataHolder) - * [`.UpdateInfo`](#UpdateInfo) - * [`.WindowsUpdateInfo`](#WindowsUpdateInfo) ⇐ [UpdateInfo](#UpdateInfo) - * [.CancellationError](#CancellationError) ⇐ Error - * [.CancellationToken](#CancellationToken) ⇐ module:events.EventEmitter - * [`.cancel()`](#module_builder-util-runtime.CancellationToken+cancel) - * [`.createPromise(callback)`](#module_builder-util-runtime.CancellationToken+createPromise) ⇒ Promise<module:builder-util-runtime/out/CancellationToken.R> - * [`.dispose()`](#module_builder-util-runtime.CancellationToken+dispose) - * [.DigestTransform](#DigestTransform) ⇐ internal:Transform - * [`._flush(callback)`](#module_builder-util-runtime.DigestTransform+_flush) - * [`._transform(chunk, encoding, callback)`](#module_builder-util-runtime.DigestTransform+_transform) - * [`.validate()`](#module_builder-util-runtime.DigestTransform+validate) ⇒ null - * [.HttpError](#HttpError) ⇐ Error - * [`.isServerError()`](#module_builder-util-runtime.HttpError+isServerError) ⇒ Boolean - * [.HttpExecutor](#HttpExecutor) - * [`.addErrorAndTimeoutHandlers(request, reject)`](#module_builder-util-runtime.HttpExecutor+addErrorAndTimeoutHandlers) - * [`.createRequest(options, callback)`](#module_builder-util-runtime.HttpExecutor+createRequest) ⇒ module:builder-util-runtime/out/httpExecutor.T - * [`.doApiRequest(options, cancellationToken, requestProcessor, redirectCount)`](#module_builder-util-runtime.HttpExecutor+doApiRequest) ⇒ Promise<String> - * [`.downloadToBuffer(url, options)`](#module_builder-util-runtime.HttpExecutor+downloadToBuffer) ⇒ Promise<module:global.Buffer> - * [`.prepareRedirectUrlOptions(redirectUrl, options)`](#module_builder-util-runtime.HttpExecutor+prepareRedirectUrlOptions) ⇒ module:http.RequestOptions - * [`.request(options, cancellationToken, data)`](#module_builder-util-runtime.HttpExecutor+request) ⇒ Promise< \| String> - * [`.retryOnServerError(task, maxRetries)`](#module_builder-util-runtime.HttpExecutor+retryOnServerError) ⇒ Promise<any> - * [.ProgressCallbackTransform](#ProgressCallbackTransform) ⇐ internal:Transform - * [`._flush(callback)`](#module_builder-util-runtime.ProgressCallbackTransform+_flush) - * [`._transform(chunk, encoding, callback)`](#module_builder-util-runtime.ProgressCallbackTransform+_transform) - * [.UUID](#UUID) - * [`.check(uuid, offset)`](#module_builder-util-runtime.UUID+check) ⇒ "undefined" \| module:builder-util-runtime/out/uuid.__object \| module:builder-util-runtime/out/uuid.__object - * [`.inspect()`](#module_builder-util-runtime.UUID+inspect) ⇒ String - * [`.parse(input)`](#module_builder-util-runtime.UUID+parse) ⇒ module:global.Buffer - * [`.toString()`](#module_builder-util-runtime.UUID+toString) ⇒ String - * [`.v5(name, namespace)`](#module_builder-util-runtime.UUID+v5) ⇒ any - * [.XElement](#XElement) - * [`.attribute(name)`](#module_builder-util-runtime.XElement+attribute) ⇒ String - * [`.element(name, ignoreCase, errorIfMissed)`](#module_builder-util-runtime.XElement+element) ⇒ [XElement](#XElement) - * [`.elementOrNull(name, ignoreCase)`](#module_builder-util-runtime.XElement+elementOrNull) ⇒ null \| [XElement](#XElement) - * [`.getElements(name, ignoreCase)`](#module_builder-util-runtime.XElement+getElements) ⇒ Array<[XElement](#XElement)> - * [`.elementValueOrEmpty(name, ignoreCase)`](#module_builder-util-runtime.XElement+elementValueOrEmpty) ⇒ String - * [`.removeAttribute(name)`](#module_builder-util-runtime.XElement+removeAttribute) - * [`.asArray(v)`](#module_builder-util-runtime.asArray) ⇒ Array<module:builder-util-runtime.T> - * [`.configureRequestOptions(options, token, method)`](#module_builder-util-runtime.configureRequestOptions) ⇒ module:http.RequestOptions - * [`.configureRequestOptionsFromUrl(url, options)`](#module_builder-util-runtime.configureRequestOptionsFromUrl) ⇒ module:http.RequestOptions - * [`.configureRequestUrl(url, options)`](#module_builder-util-runtime.configureRequestUrl) - * [`.createHttpError(response, description)`](#module_builder-util-runtime.createHttpError) ⇒ [HttpError](#HttpError) - * [`.getS3LikeProviderBaseUrl(configuration)`](#module_builder-util-runtime.getS3LikeProviderBaseUrl) ⇒ String - * [`.newError(message, code)`](#module_builder-util-runtime.newError) ⇒ Error - * [`.parseDn(seq)`](#module_builder-util-runtime.parseDn) ⇒ Map<String \| String> - * [`.parseJson(result)`](#module_builder-util-runtime.parseJson) ⇒ Promise<any> - * [`.parseXml(data)`](#module_builder-util-runtime.parseXml) ⇒ [XElement](#XElement) - * [`.safeGetHeader(response, headerKey)`](#module_builder-util-runtime.safeGetHeader) ⇒ any - * [`.safeStringifyJson(data, skippedNames)`](#module_builder-util-runtime.safeStringifyJson) ⇒ String +- [Auto-updatable Targets](#auto-updatable-targets) +- [Differences between electron-updater and built-in autoUpdater](#differences-between-electron-updater-and-built-in-autoupdater) +- [Quick Setup Guide](#quick-setup-guide) +- [Examples](#examples) + - [Custom Options instantiating updater Directly](#custom-options-instantiating-updater-directly) +- [Debugging](#debugging) +- [Compatibility](#compatibility) +- [Staged Rollouts](#staged-rollouts) +- [File Generated and Uploaded in Addition](#file-generated-and-uploaded-in-addition) +- [Private GitHub Update Repo](#private-github-update-repo) +- [Events](#events) + - [Event: `error`](#event-error) + - [Event: `checking-for-update`](#event-checking-for-update) + - [Event: `update-available`](#event-update-available) + - [Event: `update-not-available`](#event-update-not-available) + - [Event: `download-progress`](#event-download-progress) + - [Event: `update-downloaded`](#event-update-downloaded) +- [API](#api) +- [builder-util-runtime](#builder-util-runtime) + - [`BaseS3Options` ⇐ PublishConfiguration](#bases3options--publishconfiguration) + - [`BintrayOptions` ⇐ PublishConfiguration](#bintrayoptions--publishconfiguration) + - [`BlockMap`](#blockmap) + - [`BlockMapDataHolder`](#blockmapdataholder) + - [`CustomPublishOptions` ⇐ PublishConfiguration](#custompublishoptions--publishconfiguration) + - [`DownloadOptions`](#downloadoptions) + - [`GenericServerOptions` ⇐ PublishConfiguration](#genericserveroptions--publishconfiguration) + - [`GithubOptions` ⇐ PublishConfiguration](#githuboptions--publishconfiguration) + - [`KeygenOptions` ⇐ PublishConfiguration](#keygenoptions--publishconfiguration) + - [`PackageFileInfo` ⇐ BlockMapDataHolder](#packagefileinfo--blockmapdataholder) + - [`ProgressInfo`](#progressinfo) + - [`PublishConfiguration`](#publishconfiguration) + - [`ReleaseNoteInfo`](#releasenoteinfo) + - [`RequestHeaders` ⇐ \[key: string\]: OutgoingHttpHeader | undefined](#requestheaders--key-string-outgoinghttpheader--undefined) + - [`S3Options` ⇐ BaseS3Options](#s3options--bases3options) + - [`SnapStoreOptions` ⇐ PublishConfiguration](#snapstoreoptions--publishconfiguration) + - [`SpacesOptions` ⇐ BaseS3Options](#spacesoptions--bases3options) + - [`UpdateFileInfo` ⇐ BlockMapDataHolder](#updatefileinfo--blockmapdataholder) + - [`UpdateInfo`](#updateinfo) + - [`WindowsUpdateInfo` ⇐ UpdateInfo](#windowsupdateinfo--updateinfo) + - [CancellationError ⇐ Error](#cancellationerror--error) + - [CancellationToken ⇐ module:events.EventEmitter](#cancellationtoken--moduleeventseventemitter) + - [`cancellationToken.cancel()`](#cancellationtokencancel) + - [`cancellationToken.createPromise(callback)` ⇒ Promise\](#cancellationtokencreatepromisecallback--promisemodulebuilder-util-runtimeoutcancellationtokenr) + - [`cancellationToken.dispose()`](#cancellationtokendispose) + - [DigestTransform ⇐ internal:Transform](#digesttransform--internaltransform) + - [`digestTransform._flush(callback)`](#digesttransform_flushcallback) + - [`digestTransform._transform(chunk, encoding, callback)`](#digesttransform_transformchunk-encoding-callback) + - [`digestTransform.validate()` ⇒ null](#digesttransformvalidate--null) + - [HttpError ⇐ Error](#httperror--error) + - [`httpError.isServerError()` ⇒ Boolean](#httperrorisservererror--boolean) + - [HttpExecutor](#httpexecutor) + - [`httpExecutor.addErrorAndTimeoutHandlers(request, reject)`](#httpexecutoradderrorandtimeouthandlersrequest-reject) + - [`httpExecutor.createRequest(options, callback)` ⇒ module:builder-util-runtime/out/httpExecutor.T](#httpexecutorcreaterequestoptions-callback--modulebuilder-util-runtimeouthttpexecutort) + - [`httpExecutor.doApiRequest(options, cancellationToken, requestProcessor, redirectCount)` ⇒ Promise\](#httpexecutordoapirequestoptions-cancellationtoken-requestprocessor-redirectcount--promisestring) + - [`httpExecutor.downloadToBuffer(url, options)` ⇒ Promise\](#httpexecutordownloadtobufferurl-options--promisemoduleglobalbuffer) + - [`httpExecutor.prepareRedirectUrlOptions(redirectUrl, options)` ⇒ module:http.RequestOptions](#httpexecutorprepareredirecturloptionsredirecturl-options--modulehttprequestoptions) + - [`httpExecutor.request(options, cancellationToken, data)` ⇒ Promise\< | String\>](#httpexecutorrequestoptions-cancellationtoken-data--promise--string) + - [`httpExecutor.retryOnServerError(task, maxRetries)` ⇒ Promise\](#httpexecutorretryonservererrortask-maxretries--promiseany) + - [ProgressCallbackTransform ⇐ internal:Transform](#progresscallbacktransform--internaltransform) + - [`progressCallbackTransform._flush(callback)`](#progresscallbacktransform_flushcallback) + - [`progressCallbackTransform._transform(chunk, encoding, callback)`](#progresscallbacktransform_transformchunk-encoding-callback) + - [UUID](#uuid) + - [`uuiD.check(uuid, offset)` ⇒ "undefined" | module:builder-util-runtime/out/uuid.\_\_object | module:builder-util-runtime/out/uuid.\_\_object](#uuidcheckuuid-offset--undefined--modulebuilder-util-runtimeoutuuid__object--modulebuilder-util-runtimeoutuuid__object) + - [`uuiD.inspect()` ⇒ String](#uuidinspect--string) + - [`uuiD.parse(input)` ⇒ module:global.Buffer](#uuidparseinput--moduleglobalbuffer) + - [`uuiD.toString()` ⇒ String](#uuidtostring--string) + - [`uuiD.v5(name, namespace)` ⇒ any](#uuidv5name-namespace--any) + - [XElement](#xelement) + - [`xElement.attribute(name)` ⇒ String](#xelementattributename--string) + - [`xElement.element(name, ignoreCase, errorIfMissed)` ⇒ XElement](#xelementelementname-ignorecase-errorifmissed--xelement) + - [`xElement.elementOrNull(name, ignoreCase)` ⇒ null | XElement](#xelementelementornullname-ignorecase--null--xelement) + - [`xElement.getElements(name, ignoreCase)` ⇒ Array\](#xelementgetelementsname-ignorecase--arrayxelement) + - [`xElement.elementValueOrEmpty(name, ignoreCase)` ⇒ String](#xelementelementvalueoremptyname-ignorecase--string) + - [`xElement.removeAttribute(name)`](#xelementremoveattributename) + - [`builder-util-runtime.asArray(v)` ⇒ Array\](#builder-util-runtimeasarrayv--arraymodulebuilder-util-runtimet) + - [`builder-util-runtime.configureRequestOptions(options, token, method)` ⇒ module:http.RequestOptions](#builder-util-runtimeconfigurerequestoptionsoptions-token-method--modulehttprequestoptions) + - [`builder-util-runtime.configureRequestOptionsFromUrl(url, options)` ⇒ module:http.RequestOptions](#builder-util-runtimeconfigurerequestoptionsfromurlurl-options--modulehttprequestoptions) + - [`builder-util-runtime.configureRequestUrl(url, options)`](#builder-util-runtimeconfigurerequesturlurl-options) + - [`builder-util-runtime.createHttpError(response, description)` ⇒ HttpError](#builder-util-runtimecreatehttperrorresponse-description--httperror) + - [`builder-util-runtime.getS3LikeProviderBaseUrl(configuration)` ⇒ String](#builder-util-runtimegets3likeproviderbaseurlconfiguration--string) + - [`builder-util-runtime.newError(message, code)` ⇒ Error](#builder-util-runtimenewerrormessage-code--error) + - [`builder-util-runtime.parseDn(seq)` ⇒ Map\](#builder-util-runtimeparsednseq--mapstring--string) + - [`builder-util-runtime.parseJson(result)` ⇒ Promise\](#builder-util-runtimeparsejsonresult--promiseany) + - [`builder-util-runtime.parseXml(data)` ⇒ XElement](#builder-util-runtimeparsexmldata--xelement) + - [`builder-util-runtime.safeGetHeader(response, headerKey)` ⇒ any](#builder-util-runtimesafegetheaderresponse-headerkey--any) + - [`builder-util-runtime.safeStringifyJson(data, skippedNames)` ⇒ String](#builder-util-runtimesafestringifyjsondata-skippednames--string) +- [electron-updater](#electron-updater) + - [`Logger`](#logger) + - [`logger.debug(message)`](#loggerdebugmessage) + - [`logger.error(message)`](#loggererrormessage) + - [`logger.info(message)`](#loggerinfomessage) + - [`logger.warn(message)`](#loggerwarnmessage) + - [`ResolvedUpdateFileInfo`](#resolvedupdatefileinfo) + - [`UpdateCheckResult`](#updatecheckresult) + - [`UpdateDownloadedEvent` ⇐ module:builder-util-runtime.UpdateInfo](#updatedownloadedevent--modulebuilder-util-runtimeupdateinfo) + - [AppImageUpdater ⇐ module:electron-updater/out/BaseUpdater.BaseUpdater](#appimageupdater--moduleelectron-updateroutbaseupdaterbaseupdater) + - [`appImageUpdater.isUpdaterActive()` ⇒ Boolean](#appimageupdaterisupdateractive--boolean) + - [AppUpdater ⇐ module:events.EventEmitter](#appupdater--moduleeventseventemitter) + - [`appUpdater.addAuthHeader(token)`](#appupdateraddauthheadertoken) + - [`appUpdater.checkForUpdates()` ⇒ Promise\](#appupdatercheckforupdates--promiseupdatecheckresult) + - [`appUpdater.checkForUpdatesAndNotify(downloadNotification)` ⇒ Promise\< | UpdateCheckResult\>](#appupdatercheckforupdatesandnotifydownloadnotification--promise--updatecheckresult) + - [`appUpdater.downloadUpdate(cancellationToken)` ⇒ Promise\\>](#appupdaterdownloadupdatecancellationtoken--promisearraystring) + - [`appUpdater.getFeedURL()` ⇒ undefined | null | String](#appupdatergetfeedurl--undefined--null--string) + - [`appUpdater.setFeedURL(options)`](#appupdatersetfeedurloptions) + - [`appUpdater.isUpdaterActive()` ⇒ Boolean](#appupdaterisupdateractive--boolean) + - [`appUpdater.quitAndInstall(isSilent, isForceRunAfter)`](#appupdaterquitandinstallissilent-isforcerunafter) + - [MacUpdater ⇐ AppUpdater](#macupdater--appupdater) + - [`macUpdater.quitAndInstall()`](#macupdaterquitandinstall) + - [`macUpdater.addAuthHeader(token)`](#macupdateraddauthheadertoken) + - [`macUpdater.checkForUpdates()` ⇒ Promise\](#macupdatercheckforupdates--promiseupdatecheckresult) + - [`macUpdater.checkForUpdatesAndNotify(downloadNotification)` ⇒ Promise\< | UpdateCheckResult\>](#macupdatercheckforupdatesandnotifydownloadnotification--promise--updatecheckresult) + - [`macUpdater.downloadUpdate(cancellationToken)` ⇒ Promise\\>](#macupdaterdownloadupdatecancellationtoken--promisearraystring) + - [`macUpdater.getFeedURL()` ⇒ undefined | null | String](#macupdatergetfeedurl--undefined--null--string) + - [`macUpdater.setFeedURL(options)`](#macupdatersetfeedurloptions) + - [`macUpdater.isUpdaterActive()` ⇒ Boolean](#macupdaterisupdateractive--boolean) + - [NsisUpdater ⇐ module:electron-updater/out/BaseUpdater.BaseUpdater](#nsisupdater--moduleelectron-updateroutbaseupdaterbaseupdater) + - [Provider](#provider) + - [`provider.getLatestVersion()` ⇒ Promise\](#providergetlatestversion--promisemoduleelectron-updateroutprovidersprovidert) + - [`provider.setRequestHeaders(value)`](#providersetrequestheadersvalue) + - [`provider.resolveFiles(updateInfo)` ⇒ Array\](#providerresolvefilesupdateinfo--arrayresolvedupdatefileinfo) + - [UpdaterSignal](#updatersignal) + - [`updaterSignal.login(handler)`](#updatersignalloginhandler) + - [`updaterSignal.progress(handler)`](#updatersignalprogresshandler) + - [`updaterSignal.updateCancelled(handler)`](#updatersignalupdatecancelledhandler) + - [`updaterSignal.updateDownloaded(handler)`](#updatersignalupdatedownloadedhandler) + - [`electron-updater.autoUpdater` : AppUpdater](#electron-updaterautoupdater--appupdater) + - [`electron-updater.DOWNLOAD_PROGRESS` : "login" | "checking-for-update" | "update-available" | "update-not-available" | "update-cancelled" | "download-progress" | "update-downloaded" | "error"](#electron-updaterdownload_progress--login--checking-for-update--update-available--update-not-available--update-cancelled--download-progress--update-downloaded--error) + - [`electron-updater.UPDATE_DOWNLOADED` : "login" | "checking-for-update" | "update-available" | "update-not-available" | "update-cancelled" | "download-progress" | "update-downloaded" | "error"](#electron-updaterupdate_downloaded--login--checking-for-update--update-available--update-not-available--update-cancelled--download-progress--update-downloaded--error) ### `BaseS3Options` ⇐ [PublishConfiguration](electron-builder#PublishConfiguration) diff --git a/docs/configuration/configuration.md b/docs/configuration/configuration.md index f45ce5b3fc..dc52ff8a02 100644 --- a/docs/configuration/configuration.md +++ b/docs/configuration/configuration.md @@ -93,7 +93,7 @@ Env file `electron-builder.env` in the current dir ([example](https://github.com

npmRebuild = true Boolean - Whether to rebuild native dependencies before starting to package the app.

  • -

    nativeRebuilder = legacy “legacy” | “sequential” | “parallel” | “undefined” - Use legacy app-builder binary for installing native dependencies, or @electron/rebuild in sequential or parallel compilation modes.

    +

    nativeRebuilder = sequential “legacy” | “sequential” | “parallel” | “undefined” - Use legacy app-builder binary for installing native dependencies, or @electron/rebuild in sequential or parallel compilation modes.

  • buildNumber String | “undefined” - The build number. Maps to the --iteration flag for builds using FPM on Linux. If not defined, then it will fallback to BUILD_NUMBER or TRAVIS_BUILD_NUMBER or APPVEYOR_BUILD_NUMBER or CIRCLE_BUILD_NUM or BUILD_BUILDNUMBER or CI_PIPELINE_IID env.

    diff --git a/packages/app-builder-lib/scheme.json b/packages/app-builder-lib/scheme.json index bd0b502302..675bd3d0d0 100644 --- a/packages/app-builder-lib/scheme.json +++ b/packages/app-builder-lib/scheme.json @@ -7010,7 +7010,7 @@ "type": "null" } ], - "default": "legacy", + "default": "sequential", "description": "Use `legacy` app-builder binary for installing native dependencies, or `@electron/rebuild` in `sequential` or `parallel` compilation modes." }, "nodeGypRebuild": { diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index e472602e22..4a9fbcdd2b 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -133,7 +133,7 @@ export interface Configuration extends PlatformSpecificBuildOptions { readonly npmRebuild?: boolean /** * Use `legacy` app-builder binary for installing native dependencies, or `@electron/rebuild` in `sequential` or `parallel` compilation modes. - * @default legacy + * @default sequential */ readonly nativeRebuilder?: "legacy" | "sequential" | "parallel" | null diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index f5b708fd73..33433ffa62 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -182,7 +182,7 @@ export async function rebuild(config: Configuration, appDir: string, options: Re execPath: process.env.npm_execpath || process.env.NPM_CLI_JS, buildFromSource: options.buildFromSource === true, } - if ([undefined, null, "legacy"].includes(config.nativeRebuilder)) { + if (config.nativeRebuilder === "legacy") { const env = getGypEnv(options.frameworkInfo, configuration.platform, configuration.arch, options.buildFromSource === true) return executeAppBuilderAndWriteJson(["rebuild-node-modules"], configuration, { env, cwd: appDir }) } @@ -205,7 +205,7 @@ export async function rebuild(config: Configuration, appDir: string, options: Re arch, debug: log.isDebugEnabled, projectRootPath: await getProjectRootPath(appDir), - mode: config.nativeRebuilder as RebuildMode, + mode: (config.nativeRebuilder as RebuildMode) || "sequential", } if (buildFromSource) { rebuildOptions.prebuildTagPrefix = "totally-not-a-real-prefix-to-force-rebuild"