rollup-plugin-peer-deps-external
Version:
Rollup plugin to automatically add a library's peerDependencies to its bundle's external config.
28 lines (25 loc) • 742 B
JavaScript
import { either, pipe } from 'ramda';
import externalToFn from './external-to-fn';
import getModulesMatcher from './get-modules-matcher';
import getDeps from './get-deps';
export default function PeerDepsExternalPlugin({
packageJsonPath,
includeDependencies,
} = {}) {
return {
name: 'peer-deps-external',
options: opts => {
opts.external = either(
// Retain existing `external` config
externalToFn(opts.external),
// Add `peerDependencies` to `external` config
getModulesMatcher(
getDeps(packageJsonPath, 'peerDependencies').concat(
includeDependencies ? getDeps(packageJsonPath, 'dependencies') : []
)
)
);
return opts;
},
};
}