1 | {"version":3,"sources":["../../src/util/yarn.ts"],"names":[],"mappings":"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","sourcesContent":["import BluebirdPromise from \"bluebird-lst\"\nimport { asArray, log, spawn } from \"builder-util\"\nimport { exists } from \"builder-util/out/fs\"\nimport { Lazy } from \"lazy-val\"\nimport { homedir } from \"os\"\nimport * as path from \"path\"\nimport { Configuration } from \"../configuration\"\nimport { Dependency } from \"./packageDependencies\"\n\nexport async function installOrRebuild(config: Configuration, appDir: string, options: RebuildOptions, forceInstall: boolean = false) {\n const effectiveOptions = {\n buildFromSource: config.buildDependenciesFromSource === true,\n additionalArgs: asArray(config.npmArgs), ...options\n }\n\n if (forceInstall || !(await exists(path.join(appDir, \"node_modules\")))) {\n await installDependencies(appDir, effectiveOptions)\n }\n else {\n await rebuild(appDir, effectiveOptions)\n }\n}\n\nexport interface DesktopFrameworkInfo {\n version: string\n useCustomDist: boolean\n}\n\nfunction getElectronGypCacheDir() {\n return path.join(homedir(), \".electron-gyp\")\n}\n\nexport function getGypEnv(frameworkInfo: DesktopFrameworkInfo, platform: NodeJS.Platform, arch: string, buildFromSource: boolean) {\n const npmConfigArch = arch === \"armv7l\" ? \"arm\" : arch\n const common: any = {\n ...process.env,\n npm_config_arch: npmConfigArch,\n npm_config_target_arch: npmConfigArch,\n npm_config_platform: platform,\n npm_config_build_from_source: buildFromSource,\n // required for node-pre-gyp\n npm_config_target_platform: platform,\n npm_config_update_binary: true,\n npm_config_fallback_to_build: true,\n }\n\n if (platform === \"win32\") {\n common.npm_config_target_libc = \"unknown\"\n }\n\n if (!frameworkInfo.useCustomDist) {\n return common\n }\n\n // https://github.com/nodejs/node-gyp/issues/21\n return {\n ...common,\n npm_config_disturl: \"https://atom.io/download/electron\",\n npm_config_target: frameworkInfo.version,\n npm_config_runtime: \"electron\",\n npm_config_devdir: getElectronGypCacheDir(),\n }\n}\n\nfunction installDependencies(appDir: string, options: RebuildOptions): Promise<any> {\n const platform = options.platform || process.platform\n const arch = options.arch || process.arch\n const additionalArgs = options.additionalArgs\n\n log.info({platform, arch, appDir}, `installing production dependencies`)\n let execPath = process.env.npm_execpath || process.env.NPM_CLI_JS\n const execArgs = [\"install\", \"--production\"]\n\n if (!isYarnPath(execPath)) {\n if (process.env.NPM_NO_BIN_LINKS === \"true\") {\n execArgs.push(\"--no-bin-links\")\n }\n execArgs.push(\"--cache-min\", \"999999999\")\n }\n\n if (execPath == null) {\n execPath = getPackageToolPath()\n }\n else {\n execArgs.unshift(execPath)\n execPath = process.env.npm_node_execpath || process.env.NODE_EXE || \"node\"\n }\n\n if (additionalArgs != null) {\n execArgs.push(...additionalArgs)\n }\n return spawn(execPath, execArgs, {\n cwd: appDir,\n env: getGypEnv(options.frameworkInfo, platform, arch, options.buildFromSource === true),\n })\n}\n\nfunction getPackageToolPath() {\n if (process.env.FORCE_YARN === \"true\") {\n return process.platform === \"win32\" ? \"yarn.cmd\" : \"yarn\"\n }\n else {\n return process.platform === \"win32\" ? \"npm.cmd\" : \"npm\"\n }\n}\n\nfunction isYarnPath(execPath: string | null | undefined) {\n return process.env.FORCE_YARN === \"true\" || (execPath != null && path.basename(execPath).startsWith(\"yarn\"))\n}\n\nexport interface RebuildOptions {\n frameworkInfo: DesktopFrameworkInfo\n productionDeps?: Lazy<Array<Dependency>>\n\n platform?: NodeJS.Platform\n arch?: string\n\n buildFromSource?: boolean\n\n additionalArgs?: Array<string> | null\n}\n\n/** @internal */\nexport async function rebuild(appDir: string, options: RebuildOptions) {\n const nativeDeps = await BluebirdPromise.filter(await options.productionDeps!.value, it => exists(path.join(it.path, \"binding.gyp\")), {concurrency: 8})\n if (nativeDeps.length === 0) {\n log.info(\"no native production dependencies\")\n return\n }\n\n const platform = options.platform || process.platform\n const arch = options.arch || process.arch\n const additionalArgs = options.additionalArgs\n\n log.info({platform, arch}, \"rebuilding native production dependencies\")\n\n let execPath = process.env.npm_execpath || process.env.NPM_CLI_JS\n const isYarn = isYarnPath(execPath)\n const execArgs: Array<string> = []\n if (execPath == null) {\n execPath = getPackageToolPath()\n }\n else {\n execArgs.push(execPath)\n execPath = process.env.npm_node_execpath || process.env.NODE_EXE || \"node\"\n }\n\n const env = getGypEnv(options.frameworkInfo, platform, arch, options.buildFromSource === true)\n if (isYarn) {\n execArgs.push(\"run\", \"install\")\n if (additionalArgs != null) {\n execArgs.push(...additionalArgs)\n }\n await BluebirdPromise.map(nativeDeps, dep => {\n log.info({name: dep.name}, `rebuilding native dependency`)\n return spawn(execPath!, execArgs, {\n cwd: dep.path,\n env,\n })\n .catch(error => {\n if (dep.optional) {\n log.warn({dep: dep.name}, \"cannot build optional native dep\")\n }\n else {\n throw error\n }\n })\n }, {concurrency: process.platform === \"win32\" ? 1 : 2})\n }\n else {\n execArgs.push(\"rebuild\")\n if (additionalArgs != null) {\n execArgs.push(...additionalArgs)\n }\n execArgs.push(...nativeDeps.map(it => `${it.name}@${it.version}`))\n await spawn(execPath, execArgs, {\n cwd: appDir,\n env,\n })\n }\n}\n"],"sourceRoot":""}
|