【问题标题】:Why doesn't gcloud app deploy include my custom made module?为什么 gcloud app deploy 不包含我的自定义模块?
【发布时间】:2019-05-27 07:21:33
【问题描述】:

在我的 Node 应用程序脚本中,我需要一个自定义模块,它有自己的依赖项。在本地开发中,这一切正常,一切都按预期工作。但是,当我想通过 gcloud app deploy 将我的应用程序作为一个整体部署时,会发生以下错误:

更新服务 [myapp]...失败。 错误:(gcloud.app.deploy)错误响应:[9] 应用程序启动错误: > myapp@1.0.0 启动 /app > 节点服务器.js 内部/模块/cjs/loader.js:584 抛出错误; ^ 错误:找不到模块“mycustommodule”

这是否与 gcloud 尝试从 NPM 服务器为自己下载所有节点模块,因此显然找不到我的本地模块有关?我不知道如何包含我自己的节点模块(也有自己的依赖项)。

感谢您提前与我一起思考。 非常感谢您的帮助。

【问题讨论】:

    标签: node.js google-app-engine npm node-modules


    【解决方案1】:

    当您运行gcloud app deploy 命令时,SDK 会自动创建一个类似于.gitignore.gcloudignore 文件,并过滤掉一些不会部署的文件或目录。

    .gcloudignore 默认包含node_modules/ 目录,因此您安装的依赖项不会与您的代码一起上传。您可以从 .gcloudignore 中删除此条目并尝试再次部署。

    【讨论】:

    • 嗯,我不知道。我将一有机会就尝试一下(加上做stackoverflow奖励的事情)。如果我理解正确,我需要使用指向一个空的 .gcloudignore 文件的 --ignore-file=[file] 标志进行部署,该文件将覆盖自动生成的文件?
    • 你可以这样做是的。或者,如果您已运行 gcloud app deploy,请编辑 .gcloudignore 文件以删除 node_modules 文件夹。
    • 我应该在哪里/如何查看这样的文件是否已经存在?
    • 您应该能够在您运行 gcloud app deploy 的文件夹中看到它正在运行 ls -al。如果它不存在,您可以自己创建它(不要忘记点)
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多