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 { join } from "path";
|
||||
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`));
|
||||
|
||||
if (!manifest.packs || manifest.packs.length === 0) {
|
||||
console.log(`No compendium packs defined`);
|
||||
process.exit(0);
|
||||
};
|
||||
console.log(`Packing compendia`);
|
||||
|
||||
for (const compendium of manifest.packs) {
|
||||
console.debug(`Packing ${compendium.label} (${compendium.name})`);
|
||||
|
|
@ -29,4 +31,6 @@ async function main() {
|
|||
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 { extractPack } from "@foundryvtt/foundryvtt-cli";
|
||||
|
||||
async function main() {
|
||||
export async function extractCompendia() {
|
||||
const manifest = JSON.parse(await readFile(`./public/module.json`, `utf-8`));
|
||||
|
||||
if (!manifest.packs || manifest.packs.length === 0) {
|
||||
console.log(`No compendium packs defined`);
|
||||
process.exit(0);
|
||||
};
|
||||
console.log(`Extracting compendia`);
|
||||
|
||||
for (const compendium of manifest.packs) {
|
||||
console.debug(`Unpacking ${compendium.label} (${compendium.name})`);
|
||||
|
|
@ -24,4 +25,6 @@ async function main() {
|
|||
console.log(`Finished unpacking compendia`);
|
||||
};
|
||||
|
||||
main();
|
||||
if (import.meta.url === pathToFileURL(process.argv[1]).href) {
|
||||
extractCompendia();
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
/* eslint-disable no-undef */
|
||||
|
||||
import { cp, rm } from "fs/promises";
|
||||
import { readFileSync, symlinkSync } from "fs";
|
||||
import { buildCompendia } from "./scripts/buildCompendia.mjs";
|
||||
import { defineConfig } from "vite";
|
||||
import { glob } from "glob";
|
||||
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
|
||||
destroying the in-progress compendia data.
|
||||
*/
|
||||
function handlePacks() {
|
||||
function symlinkPacks() {
|
||||
return {
|
||||
writeBundle(options) {
|
||||
console.log(options.dir);
|
||||
symlinkSync(
|
||||
path.resolve(__dirname, `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
|
||||
export default defineConfig(({ mode }) => {
|
||||
const isProd = mode === `prod`;
|
||||
|
||||
const plugins = [];
|
||||
|
||||
if (!isProd) {
|
||||
if (isProd) {
|
||||
plugins.push(
|
||||
handlePacks(),
|
||||
buildPacks(),
|
||||
);
|
||||
} else {
|
||||
plugins.push(
|
||||
symlinkPacks(),
|
||||
watcher(
|
||||
`./public`,
|
||||
),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue