My env variables are not working in production (even while using PAYLOAD_PUBLIC_ prefix)

default discord avatar
ignism
3 months ago
4

So I want to hook up the preview button with a

process.env

variable. I looked around here for similar issues, and all seem to be solved by using the

PAYLOAD_PUBLIC_

prefix, which I already am using.



admin: {
...
   preview: (doc) => {
      const page = doc as any as Home;
      
      let pathToUse = '';
      
      if (page.page) {
        pathToUse = page.page.slug === 'home' ? '' : page.page.slug;
      }

      return `${process.env.PAYLOAD_PUBLIC_WEB_URL}/api/preview? url=${process.env.PAYLOAD_PUBLIC_WEB_URL}/${pathToUse}`;
    },
...
}


This works in development mode, but gives me an

undefined

for each variable after building it.

  • default discord avatar
    derosul
    3 months ago

    I'm pretty sure the

    PAYLOAD_PUBLIC_

    env variables are being replaced when you build payload (probably somewhere in your CI pipeline) Perhaps you need to define the env variables you want to use for production in there as well 🙂

  • default discord avatar
    ignism
    3 months ago

    When I add

    dotenv.config()

    it appears to be working



    it just feels like this is not what the docs are trying me to tell

  • discord user avatar
    jarrod_not_jared
    Payload Team
    3 months ago

    check out this thread:

    https://github.com/payloadcms/payload/issues/1654

    Can you point me to the docs that confused you? Maybe we need to clean a section up

  • default discord avatar
    ignism
    2 months ago

    Actually this reply sums it nice up:

    https://github.com/payloadcms/payload/issues/1654#issuecomment-1403972303


    I guess I was looking at it the wrong way, I just looked at it as one build. But there is of course a separation in server and client build.

Open the post
Continue the discussion in Discord
Like what we're doing?
Star us on GitHub!

Star

Connect with the Payload Community on Discord

Discord

online

Can't find what you're looking for?

Get help straight from the Payload team with an Enterprise License.