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 corepack
for Node.js < 16.10) - 📦 Install dependencies using
nyxi
- 🏃 Run interactive tests using
nyxr dev
📜 License
MIT - Made with 💞