mirror of
https://github.com/cypress-io/cypress.git
synced 2026-01-25 08:29:06 -06:00
Co-authored-by: Lachlan Miller <lachlan.miller.1990@outlook.com> Co-authored-by: Zach Bloomquist <git@chary.us> Co-authored-by: Tyler Biethman <tbiethman@users.noreply.github.com> Co-authored-by: Matt Henkes <mjhenkes@gmail.com> Co-authored-by: Chris Breiding <chrisbreiding@users.noreply.github.com> Co-authored-by: Matt Schile <mschile@cypress.io> Co-authored-by: Mark Noonan <mark@cypress.io> Co-authored-by: Zachary Williams <ZachJW34@gmail.com> Co-authored-by: Ben M <benm@cypress.io> Co-authored-by: Zachary Williams <zachjw34@gmail.com> Co-authored-by: astone123 <adams@cypress.io> Co-authored-by: Bill Glesias <bglesias@gmail.com> Co-authored-by: Emily Rohrbough <emilyrohrbough@yahoo.com> Co-authored-by: Emily Rohrbough <emilyrohrbough@users.noreply.github.com> Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net> Co-authored-by: Adam Stone <adams@cypress.io> Co-authored-by: Blue F <blue@cypress.io> Co-authored-by: GitStart <1501599+gitstart@users.noreply.github.com> Co-authored-by: Mike Plummer <mike-plummer@users.noreply.github.com> Co-authored-by: Jordan <jordan@jpdesigning.com> Co-authored-by: Sam Goodger <turbo@tailz.dev> Co-authored-by: Colum Ferry <cferry09@gmail.com> Co-authored-by: Stokes Player <stokes@cypress.io> Co-authored-by: Vilhelm Melkstam <vilhelm.melkstam@gmail.com> Co-authored-by: amehta265 <65267668+amehta265@users.noreply.github.com>
70 lines
2.3 KiB
JavaScript
70 lines
2.3 KiB
JavaScript
/* eslint-disable no-console */
|
|
const fs = require('fs-extra')
|
|
const { join } = require('path')
|
|
const glob = require('glob')
|
|
const os = require('os')
|
|
const path = require('path')
|
|
const { setupV8Snapshots } = require('@tooling/v8-snapshot')
|
|
const { flipFuses, FuseVersion, FuseV1Options } = require('@electron/fuses')
|
|
const { cleanup } = require('./binary/binary-cleanup')
|
|
|
|
module.exports = async function (params) {
|
|
console.log('****************************')
|
|
console.log('After pack hook')
|
|
console.log(params.appOutDir)
|
|
console.log(params.outDir)
|
|
console.log(params.electronPlatformName)
|
|
console.log('****************************')
|
|
|
|
const packages = glob.sync('packages/*/node_modules', {
|
|
cwd: params.packager.info._appDir,
|
|
})
|
|
|
|
const buildSubfoldersPerPlatform = {
|
|
darwin: join('Cypress.app', 'Contents', 'Resources', 'app'),
|
|
linux: join('resources', 'app'),
|
|
win32: join('resources', 'app'), // TODO check this path
|
|
}
|
|
const buildSubfolder = buildSubfoldersPerPlatform[os.platform()]
|
|
const outputFolder = join(params.appOutDir, buildSubfolder)
|
|
|
|
console.log('copying node_modules to', outputFolder)
|
|
|
|
for await (const packageNodeModules of packages) {
|
|
console.log('copying', packageNodeModules)
|
|
|
|
const sourceFolder = join(params.packager.info._appDir, packageNodeModules)
|
|
const destinationFolder = join(outputFolder, packageNodeModules)
|
|
|
|
await fs.copy(sourceFolder, destinationFolder)
|
|
}
|
|
|
|
const distNodeModules = path.join(params.packager.info._appDir, 'node_modules')
|
|
const appNodeModules = path.join(outputFolder, 'node_modules')
|
|
|
|
console.log('copying ', distNodeModules, ' to', appNodeModules)
|
|
|
|
await fs.copy(distNodeModules, appNodeModules)
|
|
|
|
console.log('all node_modules subfolders copied to', outputFolder)
|
|
|
|
const exePathPerPlatform = {
|
|
darwin: join(params.appOutDir, 'Cypress.app', 'Contents', 'MacOS', 'Cypress'),
|
|
linux: join(params.appOutDir, 'Cypress'),
|
|
win32: join(params.appOutDir, 'Cypress.exe'),
|
|
}
|
|
|
|
if (!['1', 'true'].includes(process.env.DISABLE_SNAPSHOT_REQUIRE)) {
|
|
await flipFuses(
|
|
exePathPerPlatform[os.platform()],
|
|
{
|
|
version: FuseVersion.V1,
|
|
[FuseV1Options.LoadBrowserProcessSpecificV8Snapshot]: true,
|
|
},
|
|
)
|
|
|
|
await setupV8Snapshots(params.appOutDir)
|
|
await cleanup(outputFolder)
|
|
}
|
|
}
|