在尚未部署的 Nextjs 构建过程中调用 API 函数(在 `getStaticProps` 中)

Call an API function during the Nextjs build process (in `getStaticProps`) that hasn't been deployed yet

我的项目,部署到 Vercel

Nextjs 站点,/pages/api/foo.ts

/pages/index.tsx 内部,我进行了以下调用:

const api = {
  async monthly(symbol) {
    const res = await fetch(`${server}/api/stocks?symbol=${symbol}`);
    const json = await res.json();
    return json;
  },
};

export async function getStaticProps() {
  const initial = await api.monthly(stock)
  return {
    props: {
      initial,
    },
    revalidate: 60,
  };
}

要在上面的 fetch 调用中获取 server 值,我有这个配置文件:

const dev = process.env.NODE_ENV !== "production";

export const server = dev
  ? "http://localhost:3000"
  : "https://fooproduction.com";

我的确切问题是:当我尝试构建(和部署)这个站点时,它无法生成静态,因为 getStaticProps 调用的 API 函数不还存在于生产环境中(因为 NODE_ENV=production 在构建过程中)

我是不是在构建、部署和调用 API 函数的 Vercel Nextjs™ 方法中做错了什么?

getStaticProps 和 return 中添加一个 try catch 错误的空属性。您的页面将在运行时生成