//nuxt-definebyBobbieGoede

nuxt-define

One utility function for module authors to define compiler constants for all builders supported by Nuxt.

13
0
13
TypeScript


Nuxt Define

One utility function for module authors to define compiler constants for all builders supported by Nuxt.

Supported builders:

  • Vite
  • Webpack
  • Rspack

Installation

npm i nuxt-define

Usage

// src/module.ts
import { addDefinePlugin } from 'nuxt-define'

export default defineNuxtModule({
  setup() {
    addDefinePlugin({
      '__MY_CONSTANT__': JSON.stringify('myValue'),
      '__SOME_FEATURE_FLAG__': JSON.stringify(false),
    })
  }
})
// src/runtime/foo.ts
export function foo() {
  console.log(__MY_CONSTANT__) // 'myValue'

  if (__SOME_FEATURE_FLAG__) {
    // expensive computation
    // omitted from final build if compiler constant is false
  } 
}

Why?

Nuxt supports multiple builders, and each builder has its own way of defining constants. This module abstracts that complexity and provides a unified API to define compiler constants that work across all supported builders.

An added bonus is that you do not need to explicitly add these builders as dev dependencies, keeping your Github notifications free of renovate PR noise.

Sponsors

[beta]v0.13.0