Skip to content

Env variables create with --var not populated in process.env #957

Open
@SawyerHood

Description

@SawyerHood

Small bug I've noticed. Env variables create with the --var flag don't appear in process.env only lobby.env, but they do appear in process.env if you load them from a .env file.

Minimal example:

import type * as Party from "partykit/server";

export default class BroadcastServer implements Party.Server {
  options: Party.ServerOptions = {
    // We're using partykit as a stateless broadcast server so hibernate
    // is what we want.
    hibernate: true,
  };

  constructor(readonly room: Party.Room) {}

  static async onBeforeRequest(request: Party.Request, lobby: Party.Lobby) {
    console.log("lobbyEnv", lobby.env);
    console.log("process.env", process.env);
    return request;
  }

  async onRequest(req: Party.Request) {
    if (req.method === "POST") {
      await req.json();
      this.room.broadcast("UPDATED");
      return new Response("OK");
    }
    return new Response("Method not allowed", { status: 405 });
  }
}

BroadcastServer satisfies Party.Worker;

If you run npx partykit deploy with a .env file, they will appear in both the lobbyEnv and process.env. If you load via --var npx partykit deploy --var HELLO=WORLD it will only appear in lobbyEnv.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions