diff --git a/.changeset/mean-beers-refuse.md b/.changeset/mean-beers-refuse.md new file mode 100644 index 00000000000..9ac1dcae50b --- /dev/null +++ b/.changeset/mean-beers-refuse.md @@ -0,0 +1,6 @@ +--- +"app-builder-lib": major +"electron-builder": major +--- + +delete all old node module collector and legacy nativeRebuilder diff --git a/packages/app-builder-lib/scheme.json b/packages/app-builder-lib/scheme.json index 29f6a5da32c..02d01265c90 100644 --- a/packages/app-builder-lib/scheme.json +++ b/packages/app-builder-lib/scheme.json @@ -7328,7 +7328,6 @@ "anyOf": [ { "enum": [ - "legacy", "parallel", "sequential" ], @@ -7339,7 +7338,7 @@ } ], "default": "sequential", - "description": "Use `legacy` app-builder binary for installing native dependencies, or `@electron/rebuild` in `sequential` or `parallel` compilation modes." + "description": "Use `@electron/rebuild` in `sequential` or `parallel` compilation modes." }, "nodeGypRebuild": { "default": false, diff --git a/packages/app-builder-lib/src/configuration.ts b/packages/app-builder-lib/src/configuration.ts index 215fa231a20..0787145c52b 100644 --- a/packages/app-builder-lib/src/configuration.ts +++ b/packages/app-builder-lib/src/configuration.ts @@ -129,10 +129,10 @@ export interface CommonConfiguration { */ readonly npmRebuild?: boolean /** - * Use `legacy` app-builder binary for installing native dependencies, or `@electron/rebuild` in `sequential` or `parallel` compilation modes. + * Use `@electron/rebuild` in `sequential` or `parallel` compilation modes. * @default sequential */ - readonly nativeRebuilder?: "legacy" | "sequential" | "parallel" | null + readonly nativeRebuilder?: "sequential" | "parallel" | null /** * The build number. Maps to the `--iteration` flag for builds using FPM on Linux. diff --git a/packages/app-builder-lib/src/node-module-collector/index.ts b/packages/app-builder-lib/src/node-module-collector/index.ts index 2e760b0567e..55366888cf3 100644 --- a/packages/app-builder-lib/src/node-module-collector/index.ts +++ b/packages/app-builder-lib/src/node-module-collector/index.ts @@ -34,4 +34,4 @@ export async function getNodeModules(rootDir: string): Promise return collector.getNodeModules() } -export { detect, getPackageManagerVersion, PM } +export { detect, getPackageManagerVersion, PM, NodeModuleInfo } diff --git a/packages/app-builder-lib/src/packager.ts b/packages/app-builder-lib/src/packager.ts index c437a973d23..112dbc9c3aa 100644 --- a/packages/app-builder-lib/src/packager.ts +++ b/packages/app-builder-lib/src/packager.ts @@ -34,7 +34,6 @@ import { ProtonFramework } from "./ProtonFramework" import { computeArchToTargetNamesMap, createTargets, NoOpTarget } from "./targets/targetFactory" import { computeDefaultAppDirectory, getConfig, validateConfiguration } from "./util/config/config" import { expandMacro } from "./util/macroExpander" -import { createLazyProductionDeps, NodeModuleDirInfo, NodeModuleInfo } from "./util/packageDependencies" import { checkMetadata, readPackageJson } from "./util/packageMetadata" import { getRepositoryInfo } from "./util/repositoryInfo" import { resolveFunction } from "./util/resolve" @@ -142,26 +141,6 @@ export class Packager { return this._repositoryInfo.value } - private nodeDependencyInfo = new Map>>() - - getNodeDependencyInfo(platform: Platform | null, flatten: boolean = true): Lazy> { - let key = "" + flatten.toString() - let excludedDependencies: Array | null = null - if (platform != null && this.framework.getExcludedDependencies != null) { - excludedDependencies = this.framework.getExcludedDependencies(platform) - if (excludedDependencies != null) { - key += `-${platform.name}` - } - } - - let result = this.nodeDependencyInfo.get(key) - if (result == null) { - result = createLazyProductionDeps(this.appDir, excludedDependencies, flatten) - this.nodeDependencyInfo.set(key, result) - } - return result - } - stageDirPathCustomizer: (target: Target, packager: PlatformPackager, arch: Arch) => string = (target, packager, arch) => { return path.join(target.outDir, `__${target.name}-${getArtifactArchName(arch, target.name)}`) } @@ -575,7 +554,6 @@ export class Packager { frameworkInfo, platform: platform.nodeName, arch: Arch[arch], - productionDeps: this.getNodeDependencyInfo(null, false) as Lazy>, }) } } diff --git a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts index 2d1b8333a5b..7dc25daeffb 100644 --- a/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts +++ b/packages/app-builder-lib/src/util/NodeModuleCopyHelper.ts @@ -6,7 +6,7 @@ import asyncPool from "tiny-async-pool" import { excludedNames, FileMatcher } from "../fileMatcher" import { Packager } from "../packager" import { FileCopyHelper } from "./AppFileWalker" -import { NodeModuleInfo } from "./packageDependencies" +import { NodeModuleInfo } from "../node-module-collector" import { resolveFunction } from "./resolve" const excludedFiles = new Set( diff --git a/packages/app-builder-lib/src/util/appBuilder.ts b/packages/app-builder-lib/src/util/appBuilder.ts index 7665b3d0872..093c13d1f2e 100644 --- a/packages/app-builder-lib/src/util/appBuilder.ts +++ b/packages/app-builder-lib/src/util/appBuilder.ts @@ -1,5 +1,4 @@ import { executeAppBuilder } from "builder-util" -import { SpawnOptions } from "child_process" export function executeAppBuilderAsJson(args: Array): Promise { return executeAppBuilder(args).then(rawResult => { @@ -15,19 +14,6 @@ export function executeAppBuilderAsJson(args: Array): Promise { }) } -export function executeAppBuilderAndWriteJson(args: Array, data: any, extraOptions: SpawnOptions = {}): Promise { - return executeAppBuilder( - args, - childProcess => { - childProcess.stdin!.end(JSON.stringify(data)) - }, - { - ...extraOptions, - stdio: ["pipe", "pipe", process.stdout], - } - ) -} - export function objectToArgs(to: Array, argNameToValue: Record): void { for (const name of Object.keys(argNameToValue)) { const value = argNameToValue[name] diff --git a/packages/app-builder-lib/src/util/appFileCopier.ts b/packages/app-builder-lib/src/util/appFileCopier.ts index d1b2c20e97c..0c67ab16714 100644 --- a/packages/app-builder-lib/src/util/appFileCopier.ts +++ b/packages/app-builder-lib/src/util/appFileCopier.ts @@ -12,8 +12,7 @@ import { Packager } from "../packager" import { PlatformPackager } from "../platformPackager" import { AppFileWalker } from "./AppFileWalker" import { NodeModuleCopyHelper } from "./NodeModuleCopyHelper" -import { NodeModuleInfo } from "./packageDependencies" -import { getNodeModules } from "../node-module-collector" +import { getNodeModules, NodeModuleInfo } from "../node-module-collector" const BOWER_COMPONENTS_PATTERN = `${path.sep}bower_components${path.sep}` /** @internal */ diff --git a/packages/app-builder-lib/src/util/packageDependencies.ts b/packages/app-builder-lib/src/util/packageDependencies.ts deleted file mode 100644 index 86e11442a57..00000000000 --- a/packages/app-builder-lib/src/util/packageDependencies.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Lazy } from "lazy-val" -import { executeAppBuilderAsJson } from "./appBuilder" - -export function createLazyProductionDeps(projectDir: string, excludedDependencies: Array | null, flatten: T) { - return new Lazy(async () => { - const args = ["node-dep-tree", "--dir", projectDir] - if (flatten) args.push("--flatten") - if (excludedDependencies != null) { - for (const name of excludedDependencies) { - args.push("--exclude-dep", name) - } - } - return executeAppBuilderAsJson>(args) - }) -} - -export interface NodeModuleDirInfo { - readonly dir: string - readonly deps: Array -} - -export interface NodeModuleInfo { - readonly name: string - readonly version: string - readonly dir: string - readonly dependencies?: Array -} diff --git a/packages/app-builder-lib/src/util/yarn.ts b/packages/app-builder-lib/src/util/yarn.ts index 810177e22c7..b8ef7e50a18 100644 --- a/packages/app-builder-lib/src/util/yarn.ts +++ b/packages/app-builder-lib/src/util/yarn.ts @@ -3,13 +3,10 @@ import { getProjectRootPath } from "@electron/rebuild/lib/search-module" import { RebuildMode } from "@electron/rebuild/lib/types" import { asArray, log, spawn } from "builder-util" import { pathExists } from "fs-extra" -import { Lazy } from "lazy-val" import { homedir } from "os" import * as path from "path" import { Configuration } from "../configuration" -import { executeAppBuilderAndWriteJson } from "./appBuilder" import { PM, detect, getPackageManagerVersion } from "../node-module-collector" -import { NodeModuleDirInfo } from "./packageDependencies" import { rebuild as remoteRebuild } from "./rebuild/rebuild" export async function installOrRebuild(config: Configuration, appDir: string, options: RebuildOptions, forceInstall = false) { @@ -160,8 +157,6 @@ function isRunningYarn(pm: PM) { export interface RebuildOptions { frameworkInfo: DesktopFrameworkInfo - productionDeps: Lazy> - platform?: NodeJS.Platform arch?: string @@ -173,7 +168,6 @@ export interface RebuildOptions { /** @internal */ export async function rebuild(config: Configuration, appDir: string, options: RebuildOptions) { const configuration = { - dependencies: await options.productionDeps.value, nodeExecPath: process.execPath, platform: options.platform || process.platform, arch: options.arch || process.arch, @@ -183,11 +177,6 @@ export async function rebuild(config: Configuration, appDir: string, options: Re } const { arch, buildFromSource, platform } = configuration - if (config.nativeRebuilder === "legacy") { - const env = getGypEnv(options.frameworkInfo, platform, arch, buildFromSource) - return executeAppBuilderAndWriteJson(["rebuild-node-modules"], configuration, { env, cwd: appDir }) - } - const { frameworkInfo: { version: electronVersion }, } = options diff --git a/packages/electron-builder/src/cli/install-app-deps.ts b/packages/electron-builder/src/cli/install-app-deps.ts index 2ad3e4ca670..80291f5ea06 100644 --- a/packages/electron-builder/src/cli/install-app-deps.ts +++ b/packages/electron-builder/src/cli/install-app-deps.ts @@ -3,7 +3,6 @@ import { getElectronVersion } from "app-builder-lib/out/electron/electronVersion" import { computeDefaultAppDirectory, getConfig } from "app-builder-lib/out/util/config/config" import { orNullIfFileNotExist } from "app-builder-lib/out/util/config/load" -import { createLazyProductionDeps } from "app-builder-lib/out/util/packageDependencies" import { installOrRebuild } from "app-builder-lib/out/util/yarn" import { PACKAGE_VERSION } from "app-builder-lib/out/version" import { getArchCliNames, log, printErrorAndExit, use } from "builder-util" @@ -62,7 +61,6 @@ export async function installAppDeps(args: any) { frameworkInfo: { version, useCustomDist: true }, platform: args.platform, arch: args.arch, - productionDeps: createLazyProductionDeps(appDir, null, false), }, appDir !== projectDir )