NestJS - 将静态(非导入)文件复制到 dist 文件夹的正确方法

Dan*_*nov 1 static google-cloud-storage google-cloud-platform gcloud nestjs

我正在构建一个使用谷歌云 API(例如谷歌云存储)的应用程序。为了使用 api 对应用程序进行身份验证,我需要将keyfile.json包含身份验证凭据的文件的路径传递给 GCloud Api 初始化脚本。IE

const storage = new Storage({
      keyFilename: path.join(__dirname, '../../keyfile.json'),
});
Run Code Online (Sandbox Code Playgroud)

我将keyfile.json放入 NestJSsrc文件夹,但是当我构建应用程序时,该文件不会复制到dist.

在 NestJS 中处理静态文件复制到 dist 的推荐方法是什么?

Yoh*_*ani 5

这个问题很老,但因为它没有正确的答案:只需在nest-cli.json的资产数组中声明您的目录

{
    "collection": "@nestjs/schematics",
    "sourceRoot": "src",
    "compilerOptions": {
        "assets": [
            "resources/*"
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

它只适用于 monorepo 项目

来源:https : //docs.nestjs.com/cli/monorepo#assets


Met*_*awi 0

只是为了澄清这一点并添加重要的一点:

  • 当您创建和部署应用程序引擎时,将创建应用程序引擎默认服务帐户并将其用作应用程序引擎服务的标识。
  • App Engine 默认服务帐号与您的 Google Cloud 项目关联,并代表您在 App Engine 中运行的应用执行任务。
  • 默认情况下,App Engine 默认服务帐户在项目中具有编辑者角色。

  • 此外,您的 App Engine 应用程序默认使用 App Engine 服务帐户的凭据。
  • 这就是您的应用在没有身份验证设置的情况下神奇地调用 Google Cloud API的感觉

您可以在这里找到此信息。