63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
// SPDX-FileCopyrightText: 2021 Johannes Loher
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import styles from "@ironkinoko/rollup-plugin-styles";
|
|
import { swc } from "rollup-plugin-swc3";
|
|
|
|
import { copy } from "@guanghechen/rollup-plugin-copy";
|
|
|
|
import { distDirectory, name, sourceDirectory } from "./tools/const.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: [
|
|
swc({
|
|
jsc: {
|
|
minify: isProduction && {
|
|
sourceMap: true,
|
|
mangle: {
|
|
keepClassNames: true,
|
|
keepFnNames: true,
|
|
},
|
|
},
|
|
},
|
|
sourceMaps: true,
|
|
}),
|
|
styles({
|
|
mode: ["extract", `css/${name}.css`],
|
|
url: false,
|
|
sourceMap: true,
|
|
minimize: isProduction,
|
|
}),
|
|
copy({ targets: [{ src: staticFiles, dest: distDirectory }] }),
|
|
],
|
|
};
|
|
|
|
export default config;
|