Skip to content

How to set environment variables in wrangler pages dev for Nuxt + Cloudflare Pages project? #7976

Open
@johnnyicon

Description

@johnnyicon

I'm building a Nuxt 3 application deployed on Cloudflare Pages, and I'm having trouble getting environment variables to work with wrangler pages dev dist/ during local development.

Setup

  • Nuxt: ^3.15.3
  • Cloudflare Pages: Latest
  • Wrangler: 3.99.0 (pinned)
  • Using PNPM: 9.12.2 as package manager
  • Node: 22.13.1
  • Building with pnpm build and testing production build with pnpm wrangler pages dev dist

What I've tried

  • Set up runtime config in nuxt.config.js:
export default defineNuxtConfig({
  runtimeConfig: {
    public: {
      consolaLevel: ''  // should be overridden by NUXT_PUBLIC_CONSOLA_LEVEL
    }
  }
})
  • Added environment variable to wrangler.toml:
[vars]
NUXT_PUBLIC_CONSOLA_LEVEL = "WRANGLER.TOML FILE"
  • Tried setting it via command line binding:
pnpm wrangler pages dev dist --binding NUXT_PUBLIC_CONSOLA_LEVEL="test value"
  • Added variable to .dev.vars and .env files (these work fine in development with pnpm dev)

Testing Code

<script setup lang="ts">
const config = useRuntimeConfig();
const nodeEnv = process.env.NODE_ENV;
</script>

<template>
  <div>
    <h1>Environment Debug: {{ nodeEnv }}</h1>
    <pre>
      CONSOLA_LEVEL: {{ config.public.consolaLevel }}
    </pre>
  </div>
</template>

Results

  • In development (pnpm dev): Environment variables work correctly
  • In production build test (pnpm wrangler pages dev dist): Environment variable is empty, despite being set in multiple places

According to Nuxt documentation, any environment variable starting with NUXT_PUBLIC_ should automatically override the corresponding runtime config value. This works in development but not when testing the production build with Wrangler.

What am I missing? How can I get environment variables working correctly when using wrangler pages dev?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    • Status

      Untriaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions