【问题标题】:Undefined process.env Environment Variable in sveltekitsveltekit 中未定义的 process.env 环境变量
【发布时间】:2021-07-02 15:09:20
【问题描述】:

我正在使用新的 SvelteKit 框架和 node-adapter

在生产构建的端点中使用process.env.APPLICATION_KEY_ID 语法时,我遇到了undefined 环境变量的问题。

当我使用: console.log(process.env) 我正在获取所有变量的列表,包括我的 APPLICATION_KEY_ID

ALLUSERSPROFILE: 'C:\\ProgramData',
APPDATA: 'C:\\Users\\user\\AppData\\Roaming',
APPLICATION_KEY_ID: 'test',

但是当我使用console.log(process.env.APPLICATION_KEY_ID)

我收到undefined

谁能给我一个提示我做错了什么?

我正在 kubernetes 中运行应用程序,这是我用于构建此映像的 Dockerfile:

# build the sapper app
FROM mhart/alpine-node:14 AS build

WORKDIR /app
COPY . .

RUN npm install
RUN npm run build

# install dependencies
FROM mhart/alpine-node:14 AS deps

WORKDIR /app

COPY package.json .
COPY --from=build /app/package-lock.json package-lock.json

RUN npm ci --prod

COPY --from=build /app/build build
COPY --from=build /app/node_modules node_modules

# copy node_modules/ and other build files over
FROM mhart/alpine-node:slim-14

WORKDIR /app

COPY --from=deps /app .

EXPOSE 3000
CMD ["node", "build"]

ENV HOST=0.0.0.0

【问题讨论】:

    标签: node.js kubernetes svelte sveltekit


    【解决方案1】:

    SvelteKit 使用 Vite 作为它的捆绑器。最好坚持这个包如何处理环境变量。也就是说,所有以VITE_ 为前缀的环境变量都将在您的代码中使用import.meta.env.VITE_xxx

    【讨论】:

    • 它似乎不起作用我也得到了前缀“VITE”的未定义
    • 使用 VITE_ 会将您的环境密钥暴露给客户端。如果 rubiktubik 正在构建 API 端点,可能不是他们想做的事情。
    • 如果在应用程序的客户端部分使用,这适用于任何这些环境键,但是原始问题提到了始终仅在服务器中的端点。但是,是的,您应该始终小心运送给客户的东西。
    猜你喜欢
    • 1970-01-01
    • 2019-08-20
    • 2020-03-27
    • 2022-06-18
    • 2021-09-13
    • 2020-08-03
    • 2020-08-09
    • 2021-08-15
    • 1970-01-01
    相关资源
    最近更新 更多