sveltekit 中未定义的 process.env 环境变量

时间:2021-04-06 19:30:14

标签: node.js kubernetes svelte sveltekit

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

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

当我使用: 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

1 个答案:

答案 0 :(得分:1)

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