@backstage/cli
Version:
CLI for developing Backstage plugins and apps
66 lines (60 loc) • 2.25 kB
JavaScript
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
;