Zeit сейчас: api требует json-файла на этапе статической сборки

Я пишу веб-приложение и пытаюсь развернуть его в 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 я пытаюсь импортировать файл json из вывода static-build:

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 из первого построителя не был доступен для второго построителя.


person Evgeny Timoshenko    schedule 02.09.2019    source источник
comment
есть подсказка stackoverflow.com/questions/56460903/   -  person Evgeny Timoshenko    schedule 02.09.2019
comment
"config": { "includeFiles": ["data/**"] } не помогло   -  person Evgeny Timoshenko    schedule 03.09.2019
comment
спектр. чат / zeit / сейчас /   -  person Evgeny Timoshenko    schedule 03.09.2019


Ответы (1)


Используя конфигурацию, вы должны получить следующее:

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

Однако вам необходимо убедиться, что этот файл доступен для вашей лямбда-выражения. Если он сгенерирован, вы можете использовать "now-build" скрипт в своем package.json для его создания.

Я думаю, что с учетом приведенной выше информации вам следует сделать следующее:

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

Создайте новую папку с именем json и переместите в нее необходимые файлы. Помните, что конфигурация includeFiles относится к корню вашего проекта (где now.json находится по умолчанию).

person paulogdm    schedule 03.09.2019
comment
Спасибо, Пауло. Я попробовал, но похоже, что это не помогло. Не уверен, что мне не хватает. - person Evgeny Timoshenko; 11.09.2019