@backstage/cli
Version:
CLI for developing Backstage plugins and apps
84 lines (77 loc) • 2.73 kB
JavaScript
;
var os = require('node:os');
var fs = require('fs-extra');
var path = require('node: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 }; }
function _interopNamespaceCompat(e) {
if (e && typeof e === 'object' && 'default' in e) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var os__default = /*#__PURE__*/_interopDefaultCompat(os);
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
var tar__namespace = /*#__PURE__*/_interopNamespaceCompat(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__namespace.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