现在的Zeit:api需要静态构建步骤中的json文件

时间:2019-09-02 08:31:41

标签: zeit-now

我正在编写一个Web应用程序,并试图将其部署到Zeit's Now。

我的now.json包含:

"builds": [
    {
      "src": "build.sh",
      "use": "@now/static-build",
      "config": { "distDir": "out" }
    },
    { "src": "api/download/index.ts", "use": "@now/node" }
  ],

api/download/index.ts中,我试图从static-build输出中导入json文件:

import slugs from "../../out/data/slugs.json";

但是我在日志中得到4:19 Cannot find module '../../out/data/slugs.json'.。 AFAIK,static-build很好。

是否可以从static-build的{​​{1}}导入文件?

UPD

我在这里概述了解决该问题的方法:正如Paulo指出的,我必须同时做这两项:

distDir

和package.json中的

{
      "src": "api/download/index.ts",
      "use": "@now/node",
      "config": {
        "includeFiles": ["data/**"]
      }
    }

似乎"now-build": "<generate content of ./data>" 的每个构建器都使用单独的目录,这就是为什么第一个构建器的now目录不能用于第二个构建器。

1 个答案:

答案 0 :(得分:1)

使用configuration,您应该具有以下条件:

  "builds": [
    {
      "src": "api/download/index.ts",
      "use": "@now/node",
      "config": {
        "includeFiles": [
          "out/data/**"
        ]
      }
    }
  ]

但是,您需要确保此文件可用于lambda。如果已生成,则可以在"now-build"中使用package.json脚本来创建它。

根据以上信息,我认为您应该执行以下操作:

  "builds": [
    {
      "src": "api/download/index.ts",
      "use": "@now/node",
      "config": {
        "includeFiles": [
          "json/**"
        ]
      }
    }
  ]

创建一个名为json的新文件夹,并将所需的文件移动到该文件夹​​。请记住,includeFiles配置是相对于项目根目录的(默认情况下,now.json所在的位置)。