pkgroll automatically externalizes dependencies based on their type in package.json:
- Externalized:
peerDependencies, dependencies, optionalDependencies - Bundled:
devDependencies
When generating type declarations (.d.ts), type dependencies in devDependencies are also bundled and tree-shaken.
Example:
{
"peerDependencies": {
"react": "^18.0.0"
},
"dependencies": {
"lodash": "^4.17.21"
},
"devDependencies": {
"typescript": "^5.0.0"
}
}
In this case, react and lodash are externalized, while typescript is bundled.
{
"dependencies": {
"lodash": "^4.17.21"
}
}
Sources: README.md