castopod/rollup.config.js

45 lines
1.1 KiB
JavaScript

import babel from "@rollup/plugin-babel";
import commonjs from "@rollup/plugin-commonjs";
import json from "@rollup/plugin-json";
import resolve from "@rollup/plugin-node-resolve";
import multiInput from "rollup-plugin-multi-input";
import nodePolyfills from "rollup-plugin-node-polyfills";
import postcss from "rollup-plugin-postcss";
import { terser } from "rollup-plugin-terser";
const INPUT_DIR = "app/Views/_assets";
const OUTPUT_DIR = "public/assets";
export default {
input: [`${INPUT_DIR}/*.ts`, `!${INPUT_DIR}/*.d.ts`],
output: {
dir: OUTPUT_DIR,
format: "esm",
sourcemap: true,
},
plugins: [
multiInput({ relative: INPUT_DIR }),
resolve({
preferBuiltins: false,
extensions: [".js", ".ts"],
}),
commonjs(),
postcss({ extract: true, sourceMap: true, minimize: true }),
json(),
nodePolyfills(),
babel({
babelHelpers: "bundled",
extensions: [".js", ".ts"],
exclude: "node_modules/**",
}),
terser(),
],
watch: {
chokidar: {
usePolling: true,
},
include: `${INPUT_DIR}/**/*.ts`,
exclude: `${INPUT_DIR}/**/*.d.ts`,
},
};