diff --git a/scripts/trace-next-server.js b/scripts/trace-next-server.js index 016f62f90496870..b59a7bb5d5347fd 100644 --- a/scripts/trace-next-server.js +++ b/scripts/trace-next-server.js @@ -5,6 +5,8 @@ const fs = require('fs-extra') const prettyBytes = require('pretty-bytes') const gzipSize = require('next/dist/compiled/gzip-size') const { nodeFileTrace } = require('next/dist/compiled/@vercel/nft') +const { linkPackages } = + require('../.github/actions/next-stats-action/src/prepare/repo-setup')() const MAX_COMPRESSED_SIZE = 250 * 1000 const MAX_UNCOMPRESSED_SIZE = 2.5 * 1000 * 1000 @@ -16,26 +18,20 @@ const MAX_UNCOMPRESSED_SIZE = 2.5 * 1000 * 1000 // version so isn't pre-traced async function main() { const tmpdir = os.tmpdir() - await execa('yarn', ['pack'], { - cwd: path.join(__dirname, '../packages/next'), - stdio: ['ignore', 'inherit', 'inherit'], - }) - const packagePath = path.join( - __dirname, - `../packages/next/next-v${ - require('../packages/next/package.json').version - }.tgz` - ) + const repoDir = path.join(__dirname, '..') const workDir = path.join(tmpdir, `trace-next-${Date.now()}`) + console.log('using workdir', workDir) await fs.ensureDir(workDir) + const pkgPaths = await linkPackages(repoDir) + await fs.writeFile( path.join(workDir, 'package.json'), JSON.stringify( { dependencies: { - next: packagePath, + next: pkgPaths.get('next'), }, private: true, }, @@ -52,6 +48,16 @@ async function main() { }, }) + // remove temporary package packs + pkgPaths.forEach((packagePath) => { + fs.unlinkSync(packagePath) + }) + // remove changes to package.json files from packing + await execa('git', ['checkout', '.'], { + cwd: repoDir, + stdio: ['ignore', 'inherit', 'inherit'], + }) + const nextServerPath = path.join( workDir, 'node_modules/next/dist/server/next-server.js' @@ -112,7 +118,6 @@ async function main() { version: 1, }) ) - await fs.unlink(packagePath) await fs.remove(workDir) console.timeEnd(traceLabel)