- Extensibility for AWP (customizable toolbar, pass replay iframe messages to parent) - Support export as module, build separate index.js for module in addition to ui.js - Update to wabac.js 2.20.0 - bump to 2.2.0
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
/* eslint-env node */
|
|
|
|
// Runs a webpack build when not installed in a git repository (i.e. when installed from GitHub in node_modules)
|
|
// Largely pulled from https://github.com/typicode/husky/blob/9d3eb31cd14d3fbdb77225d23a0c5a11f71beb2c/src/index.ts#L23
|
|
|
|
const cp = require("child_process");
|
|
|
|
const webpack = require("webpack");
|
|
const config = require("../webpack.config.js");
|
|
|
|
/**
|
|
* Logger
|
|
* @param {string} msg
|
|
* @returns {void}
|
|
*/
|
|
const l = (msg) => console.log(`replaywebpage - ${msg}`);
|
|
|
|
/**
|
|
* Git command
|
|
* @param {string[]} args
|
|
* @returns {cp.SpawnSyncReturns<Buffer>}
|
|
*/
|
|
const git = (args) => cp.spawnSync("git", args, { stdio: "inherit" });
|
|
|
|
// Ensure that we're inside a Git repository
|
|
// If git command is not found, status is null and we should return
|
|
// That's why status value needs to be checked explicitly
|
|
if (git(["rev-parse"]).status !== 0 || process.argv.includes("--force")) {
|
|
l(`git command not found, running build`);
|
|
const compiler = webpack(config.map((c) => c(process.env, process.argv)));
|
|
|
|
compiler.run((err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
process.exit(1);
|
|
}
|
|
compiler.close((err) => {
|
|
if (err) {
|
|
console.error(err);
|
|
process.exit(1);
|
|
}
|
|
});
|
|
});
|
|
}
|