UNPKG

@backstage/cli

Version:

CLI for developing Backstage plugins and apps

66 lines (60 loc) 2.25 kB
'use strict'; var os = require('os'); var fs = require('fs-extra'); var path = require('path'); var tar = require('tar'); var createDistWorkspace = require('./packager/createDistWorkspace.cjs.js'); var parallel = require('../../../lib/parallel.cjs.js'); var packager = require('./builder/packager.cjs.js'); var types = require('./builder/types.cjs.js'); var cliNode = require('@backstage/cli-node'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var os__default = /*#__PURE__*/_interopDefaultCompat(os); var fs__default = /*#__PURE__*/_interopDefaultCompat(fs); var tar__default = /*#__PURE__*/_interopDefaultCompat(tar); const BUNDLE_FILE = "bundle.tar.gz"; const SKELETON_FILE = "skeleton.tar.gz"; async function buildBackend(options) { const { targetDir, skipBuildDependencies, configPaths, minify } = options; const pkg = await fs__default.default.readJson(path.resolve(targetDir, "package.json")); await packager.buildPackage({ targetDir, packageJson: pkg, outputs: /* @__PURE__ */ new Set([types.Output.cjs]), minify, workspacePackages: await cliNode.PackageGraph.listTargetPackages() }); const tmpDir = await fs__default.default.mkdtemp(path.resolve(os__default.default.tmpdir(), "backstage-bundle")); try { await createDistWorkspace.createDistWorkspace([pkg.name], { targetDir: tmpDir, configPaths, buildDependencies: !skipBuildDependencies, buildExcludes: [pkg.name], parallelism: parallel.getEnvironmentParallelism(), skeleton: SKELETON_FILE, minify }); const distDir = path.resolve(targetDir, "dist"); await fs__default.default.remove(distDir); await fs__default.default.mkdir(distDir); await fs__default.default.move( path.resolve(tmpDir, SKELETON_FILE), path.resolve(distDir, SKELETON_FILE) ); await tar__default.default.create( { file: path.resolve(distDir, BUNDLE_FILE), cwd: tmpDir, portable: true, noMtime: true, gzip: true }, [""] ); } finally { await fs__default.default.remove(tmpDir); } } exports.buildBackend = buildBackend; //# sourceMappingURL=buildBackend.cjs.js.map