0.0.2 • Published 12 months ago

buildkarium v0.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

cover npm version npm downloads bundle License

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 (use npm i -g corepack for Node.js < 16.10)
  • 📦 Install dependencies using nyxi
  • 🏃 Run interactive tests using nyxr dev

📜 License

MIT - Made with 💞