为什么gcloud应用部署不包含我的定制模块?

时间:2019-05-27 07:21:33

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

在我的Node应用程序脚本中,我需要一个定制模块,该模块具有自己的依赖性。在本地开发中,这一切都很好,一切都按预期进行。但是,当我想通过gcloud app部署整个应用程序时,会发生以下错误:



Updating service [myapp]...failed.                                                                                                                                                       
ERROR: (gcloud.app.deploy) Error Response: [9] 
Application startup error:

> myapp@1.0.0 start /app
> node server.js

internal/modules/cjs/loader.js:584
    throw err;
    ^

Error: Cannot find module 'mycustommodule'


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

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

1 个答案:

答案 0 :(得分:2)

运行gcloud app deploy命令时,SDK会自动创建一个.gcloudignore文件,该文件的工作原理与.gitignore类似,并过滤掉一些不会部署的文件或目录。 / p> 默认情况下,

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