Zeit now:api 需要来自静态构建步骤的 json 文件
Zeit now: api requires json file from static-build step
我正在编写一个网络应用程序并尝试将其部署到 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'.
。据我所知,static-build
进展顺利。
有没有办法从 static-build
的 distDir
导入文件?
UPD
我在这里概述应该如何修复它:正如 Paulo 指出的那样,我必须同时做这两件事:
{
"src": "api/download/index.ts",
"use": "@now/node",
"config": {
"includeFiles": ["data/**"]
}
}
并在 package.json 中:
"now-build": "<generate content of ./data>"
似乎 now
为每个构建器使用单独的目录,所以这就是为什么第一个构建器的 data
目录对第二个构建器不可用的原因。
使用 configuration 你应该有这个:
"builds": [
{
"src": "api/download/index.ts",
"use": "@now/node",
"config": {
"includeFiles": [
"out/data/**"
]
}
}
]
但是,您需要确保此文件可用于您的 lambda。如果它已生成,那么您可以在 package.json
中使用 "now-build"
脚本来创建它。
根据以上信息,我认为您应该执行以下操作:
"builds": [
{
"src": "api/download/index.ts",
"use": "@now/node",
"config": {
"includeFiles": [
"json/**"
]
}
}
]
创建一个名为 json
的新文件夹,并将需要的文件移动到其中。请记住,includeFiles
配置是相对于项目的根目录的(默认情况下 now.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
我试图从 static-build
输出中导入一个 json 文件:
import slugs from "../../out/data/slugs.json";
但我在日志中得到 4:19 Cannot find module '../../out/data/slugs.json'.
。据我所知,static-build
进展顺利。
有没有办法从 static-build
的 distDir
导入文件?
UPD
我在这里概述应该如何修复它:正如 Paulo 指出的那样,我必须同时做这两件事:
{
"src": "api/download/index.ts",
"use": "@now/node",
"config": {
"includeFiles": ["data/**"]
}
}
并在 package.json 中:
"now-build": "<generate content of ./data>"
似乎 now
为每个构建器使用单独的目录,所以这就是为什么第一个构建器的 data
目录对第二个构建器不可用的原因。
使用 configuration 你应该有这个:
"builds": [
{
"src": "api/download/index.ts",
"use": "@now/node",
"config": {
"includeFiles": [
"out/data/**"
]
}
}
]
但是,您需要确保此文件可用于您的 lambda。如果它已生成,那么您可以在 package.json
中使用 "now-build"
脚本来创建它。
根据以上信息,我认为您应该执行以下操作:
"builds": [
{
"src": "api/download/index.ts",
"use": "@now/node",
"config": {
"includeFiles": [
"json/**"
]
}
}
]
创建一个名为 json
的新文件夹,并将需要的文件移动到其中。请记住,includeFiles
配置是相对于项目的根目录的(默认情况下 now.json
存在)。