tsup/src/plugins/external.ts
2021-02-23 22:04:27 +08:00

26 lines
638 B
TypeScript

import { Plugin } from 'esbuild'
export const externalPlugin = (patterns?: (string | RegExp)[]): Plugin => {
return {
name: `external`,
setup(build) {
if (!patterns || patterns.length === 0) return
build.onResolve({ filter: /.*/ }, (args) => {
const external = patterns.some((p) => {
if (p instanceof RegExp) {
return p.test(args.path)
}
return args.path === p
})
if (external) {
return { path: args.path, external }
}
// return without `path` to use default path resolution logic
return {}
})
},
}
}