Finish creating the build step for prod to handle the compendia pack(s)
This commit is contained in:
parent
66edecc217
commit
9e037818a6
3 changed files with 38 additions and 8 deletions
|
|
@ -2,14 +2,16 @@ import { existsSync } from "fs";
|
||||||
import { readFile } from "fs/promises";
|
import { readFile } from "fs/promises";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { compilePack } from "@foundryvtt/foundryvtt-cli";
|
import { compilePack } from "@foundryvtt/foundryvtt-cli";
|
||||||
|
import { pathToFileURL } from "url";
|
||||||
|
|
||||||
async function main() {
|
export async function buildCompendia() {
|
||||||
const manifest = JSON.parse(await readFile(`./public/module.json`, `utf-8`));
|
const manifest = JSON.parse(await readFile(`./public/module.json`, `utf-8`));
|
||||||
|
|
||||||
if (!manifest.packs || manifest.packs.length === 0) {
|
if (!manifest.packs || manifest.packs.length === 0) {
|
||||||
console.log(`No compendium packs defined`);
|
console.log(`No compendium packs defined`);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
};
|
};
|
||||||
|
console.log(`Packing compendia`);
|
||||||
|
|
||||||
for (const compendium of manifest.packs) {
|
for (const compendium of manifest.packs) {
|
||||||
console.debug(`Packing ${compendium.label} (${compendium.name})`);
|
console.debug(`Packing ${compendium.label} (${compendium.name})`);
|
||||||
|
|
@ -29,4 +31,6 @@ async function main() {
|
||||||
console.log(`Finished packing compendia`)
|
console.log(`Finished packing compendia`)
|
||||||
};
|
};
|
||||||
|
|
||||||
main();
|
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
|
||||||
|
buildCompendia();
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,14 @@ import { readFile } from "fs/promises";
|
||||||
import { join } from "path";
|
import { join } from "path";
|
||||||
import { extractPack } from "@foundryvtt/foundryvtt-cli";
|
import { extractPack } from "@foundryvtt/foundryvtt-cli";
|
||||||
|
|
||||||
async function main() {
|
export async function extractCompendia() {
|
||||||
const manifest = JSON.parse(await readFile(`./public/module.json`, `utf-8`));
|
const manifest = JSON.parse(await readFile(`./public/module.json`, `utf-8`));
|
||||||
|
|
||||||
if (!manifest.packs || manifest.packs.length === 0) {
|
if (!manifest.packs || manifest.packs.length === 0) {
|
||||||
console.log(`No compendium packs defined`);
|
console.log(`No compendium packs defined`);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
};
|
};
|
||||||
|
console.log(`Extracting compendia`);
|
||||||
|
|
||||||
for (const compendium of manifest.packs) {
|
for (const compendium of manifest.packs) {
|
||||||
console.debug(`Unpacking ${compendium.label} (${compendium.name})`);
|
console.debug(`Unpacking ${compendium.label} (${compendium.name})`);
|
||||||
|
|
@ -24,4 +25,6 @@ async function main() {
|
||||||
console.log(`Finished unpacking compendia`);
|
console.log(`Finished unpacking compendia`);
|
||||||
};
|
};
|
||||||
|
|
||||||
main();
|
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
|
||||||
|
extractCompendia();
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
/* eslint-disable no-undef */
|
/* eslint-disable no-undef */
|
||||||
|
|
||||||
|
import { cp, rm } from "fs/promises";
|
||||||
import { readFileSync, symlinkSync } from "fs";
|
import { readFileSync, symlinkSync } from "fs";
|
||||||
|
import { buildCompendia } from "./scripts/buildCompendia.mjs";
|
||||||
import { defineConfig } from "vite";
|
import { defineConfig } from "vite";
|
||||||
import { glob } from "glob";
|
import { glob } from "glob";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
|
@ -46,10 +48,9 @@ The intent of this plugin is to handle the symlinking of the compendium packs
|
||||||
so that they can modified during dev without needing to worry about the rebuild
|
so that they can modified during dev without needing to worry about the rebuild
|
||||||
destroying the in-progress compendia data.
|
destroying the in-progress compendia data.
|
||||||
*/
|
*/
|
||||||
function handlePacks() {
|
function symlinkPacks() {
|
||||||
return {
|
return {
|
||||||
writeBundle(options) {
|
writeBundle(options) {
|
||||||
console.log(options.dir);
|
|
||||||
symlinkSync(
|
symlinkSync(
|
||||||
path.resolve(__dirname, `packs`),
|
path.resolve(__dirname, `packs`),
|
||||||
`${options.dir}/packs`,
|
`${options.dir}/packs`,
|
||||||
|
|
@ -59,15 +60,37 @@ function handlePacks() {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
The intent of this plugin is to handle the copying, cleaning and compiling of
|
||||||
|
compendia packs for production
|
||||||
|
*/
|
||||||
|
function buildPacks() {
|
||||||
|
return {
|
||||||
|
async writeBundle(options) {
|
||||||
|
// console.log(options);
|
||||||
|
const buildDir = options.dir;
|
||||||
|
await buildCompendia();
|
||||||
|
await cp(`${__dirname}/packs`, `${buildDir}/packs`, { recursive: true, force: true });
|
||||||
|
for (const file of glob.sync(`${buildDir}/packs/**/_source/`)) {
|
||||||
|
await rm(file, { recursive: true, force: true });
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// MARK: config
|
// MARK: config
|
||||||
export default defineConfig(({ mode }) => {
|
export default defineConfig(({ mode }) => {
|
||||||
const isProd = mode === `prod`;
|
const isProd = mode === `prod`;
|
||||||
|
|
||||||
const plugins = [];
|
const plugins = [];
|
||||||
|
|
||||||
if (!isProd) {
|
if (isProd) {
|
||||||
plugins.push(
|
plugins.push(
|
||||||
handlePacks(),
|
buildPacks(),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
plugins.push(
|
||||||
|
symlinkPacks(),
|
||||||
watcher(
|
watcher(
|
||||||
`./public`,
|
`./public`,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue