Skip to content

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

License

Notifications You must be signed in to change notification settings

BobbieGoede/nuxt-define

Repository files navigation

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published