node.js - sveltekit 中未定义 process.env 环境变量

标签 node.js kubernetes svelte sveltekit

我正在使用新的SvelteKit带有 Node 适配器

的框架

在生产构建的端点中使用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)

我得到未定义

有人可以告诉我我做错了什么吗?

我正在 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

最佳答案

SvelteKit 使用 Vite因为它是 bundler 。最好坚持这个包处理环境变量的方式。也就是说,所有以 VITE_ 为前缀的环境变量都可以在您的代码中使用 import.meta.env.VITE_xxx

关于node.js - sveltekit 中未定义 process.env 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66975324/

相关文章:

azure - 无法从 Pod 内使用 cidr 10.0.x.0/24 与网络中的计算机(k8s 集群外部)进行通信

kubernetes - serviceAccount token 量投影 - list 文件中 "path"中的投影 token 不正确

css - 在 Sapper 中使用 rem 单位的相对大小

javascript - Socket.io 发送时间不一致

javascript - Req.Body 返回 "undefined"值

mysql - Nodejs (Express) 连接 MySQL - 本地和远程连接有何不同?

kubernetes - Traefik Ku​​bernetes : Expose non Kubernetes service

javascript - 在 svelte 中导入 javascript 文件

javascript - Sapper 在点击链接时不会重新加载数据

javascript - Microsoft BotBuilder JavaScript 示例错误