lastfm-njs/rollup.config.mjs

67 lines
1.6 KiB
JavaScript

import { readFileSync } from "fs";
import path from "path";
import alias from "@rollup/plugin-alias";
import commonjs from "@rollup/plugin-commonjs";
import { nodeResolve } from "@rollup/plugin-node-resolve";
import { defineConfig } from "rollup";
import typescript from "rollup-plugin-typescript2";
import frankDistFolder from "./plugins/frankDist.mjs";
const packageJson = JSON.parse(readFileSync("./package.json"));
const dirname = path.dirname(".");
const rollupOptions = defineConfig({
input: "lib/index.ts",
external: [
...(packageJson.dependencies ? Object.keys(packageJson.dependencies) : []),
...(packageJson.devDependencies
? Object.keys(packageJson.devDependencies)
: []),
...(packageJson.peerDependencies
? Object.keys(packageJson.peerDependencies)
: []),
],
output: [
{
file: packageJson.module,
format: "esm",
sourcemap: true,
exports: "named",
},
{
file: packageJson.main,
format: "cjs",
sourcemap: true,
exports: "named",
},
],
plugins: [
// understand alias imports
alias({ entries: [{ find: "~/", replacement: dirname + "/lib/" }] }),
// convert commonjs modules to es6
commonjs(),
nodeResolve(),
// generate type declarations for typescript files
typescript({
useTsconfigDeclarationDir: true,
tsconfigDefaults: {
compilerOptions: {
plugins: [
{
transform: "typescript-transform-paths",
afterDeclarations: true,
},
],
},
},
}),
frankDistFolder(),
],
});
export default rollupOptions;