Externality is a set of utilities for handling identifying whether a given package or path should be considered an external package that can be imported at runtime, or whether is should be bundled in a build step.
It also contains a webpack and rollup plugin for encapsulating this functionality.
Install using npm or yarn:
npm i externality
# or
yarn add externality
import { rollupExternals } from 'externality'
import { webpackExternals } from 'externality'
This utility is powered by enhanced-resolve
and will resolve a given module/path with support for extensions, CJS/ESM and more.
import { resolveId } from 'externality'
await resolveId('my-lib', { type: 'commonjs' })
// {
// id: 'my-lib',
// path: '/path/to/node_modules/my-lib/index.js',
// type: 'commonjs'
// }
import { isExternal } from 'externality'
await isExternal('my-lib', '.')
// {
// id: 'my-lib',
// external: true
// }