unplugin-macros
TypeScript icon, indicating that this package has built-in type declarations

0.13.0 • Public • Published

unplugin-macros npm jsr

Unit Test

Macros are a mechanism for running JavaScript functions at bundle-time. The value returned from these functions or variables are directly inlined into your bundle.

Installation

# npm
npm i -D unplugin-macros

# jsr
npx jsr add -D @unplugin/macros
Vite
// vite.config.ts
import Macros from 'unplugin-macros/vite'

export default defineConfig({
  plugins: [Macros()],
})


Rollup
// rollup.config.js
import Macros from 'unplugin-macros/rollup'

export default {
  plugins: [Macros()],
}


esbuild

Requires esbuild >= 0.15

// esbuild.config.js
import { build } from 'esbuild'

build({
  plugins: [require('unplugin-macros/esbuild')()],
})


Webpack
// webpack.config.js
module.exports = {
  /* ... */
  plugins: [require('unplugin-macros/webpack')()],
}


Usage

// main.js
import { getRandom, buildTime } from './macros' with { type: 'macro' }

getRandom() // Will be replaced with a random number at build time
buildTime // Will be replaced with the timestamp at the build time
// macros.js
export function getRandom() {
  return Math.random()
}
export const buildTime = Date.now()

See more in Bun Macros.

TypeScript

Import Attributes syntax is supported in TypeScript >= 5.3, but you can replace with keyword with assert, which is supported in TypeScript >= 4.5.

ESLint

ESLint is not supported Import Attributes syntax yet, but you can use @babel/eslint-parser or @typescript-eslint/parser.

Options

Refer to docs.

Thanks

Thanks to Bun Macros.

Sponsors

License

MIT License © 2023-PRESENT 三咲智子

Package Sidebar

Install

npm i unplugin-macros

Weekly Downloads

559

Version

0.13.0

License

MIT

Unpacked Size

39.7 kB

Total Files

33

Last publish

Collaborators

  • userquin
  • hannoeru
  • sxzz
  • antfu