You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地正常的环境变量部署到Netlify后显示undefined求助

解决Netlify部署后API_KEY环境变量为undefined的问题

问题根源

本地运行正常但Netlify部署后变量显示undefined,核心原因是webpack构建时未正确注入Netlify提供的环境变量,当前DefinePlugin直接序列化整个process.env的配置,在Netlify构建环境下可能导致目标变量未被正确捕获,另外多数情况会忽略「设置环境变量后需重新触发构建」的要求。

修复步骤

1. 修正webpack的DefinePlugin配置

修改webpack.common.js中的DefinePlugin,避免序列化整个process.env,只明确注入需要的API_KEY,减少冗余同时避免变量丢失:

const HtmlWebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');
// 保留dotenv加载本地.env,方便本地开发调试
require('dotenv').config({ path: './.env' });

module.exports = {
    entry: './src/index.js',
    plugins : [
        new HtmlWebpackPlugin({
            template: './src/template.html'
        }),
        new webpack.DefinePlugin({
            'process.env.API_KEY': JSON.stringify(process.env.API_KEY)
        })
    ],
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader']
            }
        ]
    }
}

2. 确认Netlify配置并重新构建

  • 检查Netlify后台「Site settings > Build & deploy > Environment > Environment variables」中,变量名是否为API_KEY(大小写必须与代码中的process.env.API_KEY完全匹配)
  • 设置完成后,必须在Netlify的「Deploys」页面点击「Trigger deploy」->「Deploy site」重新构建,旧的构建缓存不会自动加载新的环境变量

3. 验证生产构建配置

确保webpack.prod.js正确合并了webpack.common.js的配置,保证DefinePlugin在生产构建中生效,示例prod配置如下:

const { merge } = require('webpack-merge');
const common = require('./webpack.common.js');

module.exports = merge(common, {
    mode: 'production',
    // 其他生产环境专属配置...
});

验证方法

重新部署完成后,打开浏览器控制台查看请求URL,确认appid参数已填充正确的API_KEY,而非undefined。

内容的提问来源于stack exchange,提问作者Andrex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:36:27