69 lines
1.9 KiB
JavaScript
69 lines
1.9 KiB
JavaScript
// SPDX-FileCopyrightText: 2021 Johannes Loher
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import copy from "@guanghechen/rollup-plugin-copy";
|
|
import typescript from "@rollup/plugin-typescript";
|
|
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 = [
|
|
".reuse",
|
|
"assets",
|
|
"ATTRIBUTION.md",
|
|
"fonts",
|
|
"lang",
|
|
"LICENSE.md",
|
|
"LICENSES",
|
|
"README.md",
|
|
"system.json.license",
|
|
"system.json",
|
|
"template.json.license",
|
|
"template.json",
|
|
"templates",
|
|
];
|
|
const isProduction = process.env.NODE_ENV === "production";
|
|
|
|
/**
|
|
* @type {import('rollup').RollupOptions}
|
|
*/
|
|
const config = {
|
|
input: { [`${name}`]: `${sourceDirectory}/${name}.ts` },
|
|
output: {
|
|
dir: distDirectory,
|
|
format: "es",
|
|
sourcemap: true,
|
|
assetFileNames: "[name].[ext]",
|
|
},
|
|
plugins: [
|
|
typescript(),
|
|
styles({
|
|
mode: ["extract", `css/${name}.css`],
|
|
url: false,
|
|
sourceMap: true,
|
|
minimize: isProduction,
|
|
}),
|
|
copy({
|
|
targets: [
|
|
{ src: staticFiles, dest: distDirectory },
|
|
{
|
|
src: [`packs/*.json`],
|
|
dest: `${distDirectory}/packs`,
|
|
rename: (name) => `${name}.db`,
|
|
transform: convertJSONToPack,
|
|
},
|
|
{
|
|
src: [`packs/*.json.license`],
|
|
dest: `${distDirectory}/packs`,
|
|
rename: (name, extension) => `${name.replace(".json", ".db")}.${extension}`,
|
|
},
|
|
],
|
|
verbose: true,
|
|
}),
|
|
isProduction && terser({ ecma: 2020, keep_fnames: true }),
|
|
],
|
|
};
|
|
|
|
export default config;
|