diff --git a/scripts/build-headless.js b/scripts/build-headless.js index 5a86a477b..42b8789ac 100644 --- a/scripts/build-headless.js +++ b/scripts/build-headless.js @@ -12,15 +12,15 @@ const { buildFolder, compile, compileDefaultPlugins, + getVersionNumber, } = require('./build-utils.js'); -function preludeBundle(dir) { +function preludeBundle(dir, versionNumber) { return new Promise((resolve, reject) => lineReplace({ file: path.join(dir, 'bundle.js'), line: 1, - text: - 'var __DEV__=false; global.electronRequire = require; global.performance = require("perf_hooks").performance;', + text: `var __DEV__=false; global.electronRequire = require; global.performance = require("perf_hooks").performance;global.__VERSION__="${versionNumber}";`, addNewLine: true, callback: resolve, }), @@ -56,7 +56,8 @@ function preludeBundle(dir) { // eslint-disable-next-line no-console console.log('Created build directory', buildDir); await compile(buildDir, path.join(__dirname, '..', 'headless', 'index.js')); - await preludeBundle(buildDir); + const versionNumber = getVersionNumber(); + await preludeBundle(buildDir, versionNumber); await compileDefaultPlugins(path.join(distDir, 'plugins')); await createBinary([ path.join(buildDir, 'bundle.js'), diff --git a/scripts/build-release.js b/scripts/build-release.js index e21ce017c..fba296a7e 100755 --- a/scripts/build-release.js +++ b/scripts/build-release.js @@ -13,6 +13,7 @@ const { compile, die, compileDefaultPlugins, + getVersionNumber, } = require('./build-utils.js'); function generateManifest(versionNumber) { @@ -29,7 +30,7 @@ function generateManifest(versionNumber) { ); } -function modifyPackageManifest(buildFolder) { +function modifyPackageManifest(buildFolder, versionNumber) { // eslint-disable-next-line no-console console.log('Creating package.json manifest'); const manifest = require('../package.json'); @@ -40,28 +41,11 @@ function modifyPackageManifest(buildFolder) { // because all dependencies from the root-folder are already bundled by metro. manifest.dependencies = manifestStatic.dependencies; manifest.main = 'index.js'; - - const buildNumber = process.argv.join(' ').match(/--version=(\d+)/); - if (buildNumber && buildNumber.length > 0) { - manifest.version = [ - ...manifest.version.split('.').slice(0, 2), - buildNumber[1], - ].join('.'); - } - - return new Promise((resolve, reject) => { - fs.writeFile( - path.join(buildFolder, 'package.json'), - JSON.stringify(manifest, null, ' '), - err => { - if (err) { - reject(err); - } else { - resolve(manifest.version); - } - }, - ); - }).catch(die); + manifest.version = versionNumber; + fs.writeFileSync( + path.join(buildFolder, 'package.json'), + JSON.stringify(manifest, null, ' '), + ); } function buildDist(buildFolder) { @@ -112,32 +96,20 @@ function buildDist(buildFolder) { } function copyStaticFolder(buildFolder) { - return new Promise((resolve, reject) => { - fs.copy( - path.join(__dirname, '..', 'static'), - buildFolder, - { - dereference: true, - }, - err => { - if (err) { - reject(err); - } else { - resolve(); - } - }, - ); - }).catch(die); + fs.copySync(path.join(__dirname, '..', 'static'), buildFolder, { + dereference: true, + }); } (async () => { const dir = await buildFolder(); // eslint-disable-next-line no-console console.log('Created build directory', dir); - await copyStaticFolder(dir); + copyStaticFolder(dir); await compileDefaultPlugins(path.join(dir, 'defaultPlugins')); await compile(dir, path.join(__dirname, '..', 'src', 'init.js')); - const versionNumber = await modifyPackageManifest(dir); + const versionNumber = getVersionNumber(); + modifyPackageManifest(dir, versionNumber); generateManifest(versionNumber); await buildDist(dir); // eslint-disable-next-line no-console diff --git a/scripts/build-utils.js b/scripts/build-utils.js index fa94e0ac2..dae354468 100644 --- a/scripts/build-utils.js +++ b/scripts/build-utils.js @@ -86,9 +86,19 @@ function buildFolder() { }).catch(die); } +function getVersionNumber() { + let {version} = require('../package.json'); + const buildNumber = process.argv.join(' ').match(/--version=(\d+)/); + if (buildNumber && buildNumber.length > 0) { + version = [...version.split('.').slice(0, 2), buildNumber[1]].join('.'); + } + return version; +} + module.exports = { buildFolder, compile, die, compileDefaultPlugins, + getVersionNumber, };