diff --git a/packages/engine/build.plugin.js b/packages/engine/build.plugin.js index 07b68a383..ee433be05 100644 --- a/packages/engine/build.plugin.js +++ b/packages/engine/build.plugin.js @@ -1,8 +1,18 @@ +const { execSync } = require('child_process'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); -const fse = require('fs-extra'); -// read from lerna -const lernaConfig = JSON.parse(fse.readFileSync('../../lerna.json', 'utf8')); -const { version } = lernaConfig; + +function getReleaseVersion() { + const gitBranchName = execSync('git rev-parse --abbrev-ref HEAD', { encoding: 'utf-8' }); + const reBranchVersion = /^(?:[\w-]+\/)(\d+\.\d+\.\d+)$/im; + const match = reBranchVersion.exec(gitBranchName); + if (!match) { + throw new Error(`[engine] gitBranchName: ${gitBranchName} is not valid`); + } + + return match[1]; +} + +const version = getReleaseVersion(); module.exports = ({ context, onGetWebpackConfig }) => { onGetWebpackConfig((config) => { diff --git a/packages/engine/scripts/version.js b/packages/engine/scripts/version.js deleted file mode 100644 index 016e337c5..000000000 --- a/packages/engine/scripts/version.js +++ /dev/null @@ -1,27 +0,0 @@ -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable @typescript-eslint/no-require-imports */ -const { join } = require('path'); -const fse = require('fs-extra'); -// read from lerna -const lernaConfig = JSON.parse(fse.readFileSync('../../lerna.json', 'utf8')); -const { version } = lernaConfig; - -let releaseVersion = version; - -const distDir = join(__dirname, '../dist'); - -const distFileNames = ['engine-core.js']; - -distFileNames.forEach(name => { - const distFile = join(distDir, 'js', name); - if (!fse.existsSync(distFile)) { - console.warn(`[engine] distFile: ${distFile} doesn\'t exist`); - return; - } - - const indexContent = fse.readFileSync(distFile, 'utf-8'); - - fse.writeFileSync(distFile, indexContent.replace('{{VERSION_PLACEHOLDER}}', releaseVersion)); -}); - -console.log('[engine] update engine version successfully!');