One utility function for module authors to define compiler constants for all builders supported by Nuxt.
Supported builders:
- Vite
- Webpack
- Rspack
npm i nuxt-define
// 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
}
}
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.