chore: build when installed from git source

Enables yarn add git+https://github.com/webrecorder/replayweb.page.git#dev-2.0.0
This commit is contained in:
sua yoo
2023-12-04 14:38:17 -08:00
parent 8f7ce42913
commit 4e08272a38
2 changed files with 49 additions and 2 deletions
+4 -2
View File
@@ -86,7 +86,7 @@
"release": "yarn run build && electron-builder", "release": "yarn run build && electron-builder",
"lint": "eslint ./", "lint": "eslint ./",
"format": "prettier --write ./", "format": "prettier --write ./",
"prepare": "husky install" "prepare": "husky install; node scripts/build-if-not-git-repo.js"
}, },
"build": { "build": {
"afterSign": "build/notarize.js", "afterSign": "build/notarize.js",
@@ -102,7 +102,9 @@
"dist/*.js", "dist/*.js",
"dist/prebuilds/${platform}-${arch}/*", "dist/prebuilds/${platform}-${arch}/*",
"dist/build/*", "dist/build/*",
"*.js", "index.js",
"ui.js",
"sw.js",
"*.html", "*.html",
"ruffle", "ruffle",
"webmanifest.json", "webmanifest.json",
+45
View File
@@ -0,0 +1,45 @@
/* eslint-disable @typescript-eslint/no-var-requires */
/* 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) {
l(`git command not found, running build`);
const compiler = webpack(config.map((c) => c()));
compiler.run((err) => {
if (err) {
console.error(err);
process.exit(1);
}
compiler.close((err) => {
if (err) {
console.error(err);
process.exit(1);
}
});
});
}