buildkarium v0.0.2
Buildkarium
🧱 An enchanting JavaScript build ecosystem!
📦 Optimized bundler
Robust rollup based bundler that supports typescript and generates commonjs and module formats + type declarations.
🪄 Automated config
Automagically infer build config and entries from package.json.
📁 Bundleless build
Integration with mimikra for generating bundleless dists with file-to-file transpilation.
✨ Passive watcher
Stub dist once using dynot and you can try and link your project without needing to watch and rebuild during development.
✍ Typiqus Generator
Integration with typiqus.
🛡️ Secure builds
Automatically check for various build issues such as potential missing and unused dependencies and fail CI.
CLI output also includes output size and exports for quick inspection.
⚙️ Usage
📄 Create src/index.ts:
export const log = (...args) => { console.log(...args) }🔄 Update package.json:
{
"type": "module",
"exports": {
".": {
"import": "./dist/index.mjs",
"require": "./dist/index.cjs"
}
},
"main": "./dist/index.cjs",
"types": "./dist/index.d.ts",
"files": [
"dist"
]
}🔨 Build with buildkarium:
npx buildkarium✅ Configuration is automatically inferred from fields in package.json mapped to src/ directory. For more control, continue with the next section.
⚙️ Configuration
📄 Create karium.config.ts:
export default {
entries: [
'./src/index'
]
}✅ You can either use the buildkarium key in package.json or create a karium.config.{js,ts,json} file to specify the configuration.
✅ See options here. 📚
💡 Example:
import { defineBuildConfig } from 'buildkarium'
export default defineBuildConfig({
// If entries is not provided, will be automatically inferred from package.json
entries: [
// default
'./src/index',
// mkdist builder transpiles file-to-file keeping original sources structure
{
builder: 'mimikra',
input: './src/package/components/',
outDir: './build/components'
},
],
// Change outDir, default is 'dist'
outDir: 'build',
// Generates .d.ts declaration file
declaration: true,
})🌱 Development
- 🐙 Clone this repository
- 🔧 Enable Corepack using
corepack enable(usenpm i -g corepackfor Node.js < 16.10) - 📦 Install dependencies using
nyxi - 🏃 Run interactive tests using
nyxr dev
📜 License
MIT - Made with 💞
