1

我正在编写一个网络应用程序并尝试将其部署到 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's导入文件distDir

UPD

我将在这里概述应该做些什么来解决它:正如保罗指出的那样,我必须同时做:

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

在 package.json 中:

"now-build": "<generate content of ./data>"

似乎now每个构建器都使用单独的目录,所以这就是为什么第一个构建器的data目录对第二个构建器不可用。

4

1 回答 1

1

使用配置你应该有这个:

  "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默认情况下位于该根目录)。

于 2019-09-03T12:29:12.077 回答