51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
// SPDX-FileCopyrightText: 2021 Johannes Loher
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import copy from "@guanghechen/rollup-plugin-copy";
|
|
import typescript from "rollup-plugin-typescript2";
|
|
import sourcemaps from "rollup-plugin-sourcemaps";
|
|
import styles from "rollup-plugin-styles";
|
|
import { terser } from "rollup-plugin-terser";
|
|
import { distDirectory, name, sourceDirectory } from "./tools/const.js";
|
|
import { convertJSONToPack } from "./tools/json-pack-tools.js";
|
|
|
|
const staticFiles = ["template.json", "system.json", "assets", "fonts", "lang", "templates"];
|
|
const isProduction = process.env.NODE_ENV === "production";
|
|
|
|
/**
|
|
* @type {import('rollup').RollupOptions}
|
|
*/
|
|
const config = {
|
|
input: { [`module/${name}`]: `${sourceDirectory}/module/${name}.ts` },
|
|
output: {
|
|
dir: distDirectory,
|
|
format: "es",
|
|
sourcemap: true,
|
|
assetFileNames: "[name].[ext]",
|
|
},
|
|
plugins: [
|
|
sourcemaps(),
|
|
typescript(),
|
|
styles({
|
|
mode: ["extract", `css/${name}.css`],
|
|
url: false,
|
|
sourceMap: true,
|
|
minimize: isProduction,
|
|
}),
|
|
copy({
|
|
targets: [
|
|
{ src: staticFiles.map((file) => `${sourceDirectory}/${file}`), dest: distDirectory },
|
|
{
|
|
src: [`${sourceDirectory}/packs/*.json`],
|
|
dest: `${distDirectory}/packs`,
|
|
rename: (name) => `${name}.db`,
|
|
transform: convertJSONToPack,
|
|
},
|
|
],
|
|
}),
|
|
isProduction && terser({ ecma: 2020, keep_fnames: true }),
|
|
],
|
|
};
|
|
|
|
export default config;
|