Skip to content
Snippets Groups Projects
rollup.config.js 1.12 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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`,
      },
    };