Extra Conditions
Configure custom export conditions in package.json validation
Extra Conditions Example
This example demonstrates how to use the extraConditions option in package.json validation to allow custom export conditions.
Configuration
// packem.config.ts
import { defineConfig } from '@visulima/packem/config'
import transformer from '@visulima/packem/transformer/esbuild'
export default defineConfig({
transformer,
entries: [
{
input: "src/index.ts",
},
],
validation: {
packageJson: {
extraConditions: ["custom-bundler", "my-framework", "special-env"]
}
}
})Package.json Example
{
"name": "my-package",
"exports": {
".": {
"custom-bundler": "./dist/custom.js",
"my-framework": "./dist/framework.js",
"special-env": "./dist/special.js",
"import": "./dist/index.mjs",
"require": "./dist/index.cjs",
"default": "./dist/index.js"
}
}
}What this does
- Without
extraConditions: Packem would warn about unknown conditionscustom-bundler,my-framework, andspecial-env - With
extraConditions: These custom conditions are recognized as valid and no warnings are generated - Unknown conditions not listed in
extraConditionswill still generate warnings
Use Cases
- Custom bundler-specific conditions
- Framework-specific export conditions
- Environment-specific conditions
- Tool-specific conditions
- Any custom export condition your package needs to support
Standard Conditions
Packem already recognizes these standard and community conditions without needing to add them to extraConditions:
Standard Node.js Conditions
import- ES modulesrequire- CommonJSnode- Node.js environmentdefault- Fallback condition
Community Conditions
browser- Browser environmentdevelopment- Development buildsproduction- Production buildstypes- TypeScript declarationsreact-native- React Native platformreact-server- React Server Componentsedge-light- Edge runtime environments
Related Examples
- Package.json Validation - Complete package.json validation setup
- Bundle Size Limits - Configure bundle size validation
- Multi-Runtime Exports - Target multiple runtimes with conditional exports