Node.js 为什么';gcloud应用程序部署是否包括我的定制模块?
在我的节点应用程序脚本中,我需要一个自定义模块,它有自己的依赖项。在本地开发中,这一切都很好,一切都按预期进行。但是,当我想通过gcloud app deploy整体部署我的应用程序时,会出现以下错误: 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' 更新服务[myapp]…失败。 错误:(gcloud.app.deploy)错误响应:[9] 应用程序启动错误: > myapp@1.0.0启动/应用程序 >node server.js 内部/modules/cjs/loader.js:584 犯错误; ^ 错误:找不到模块“mycustommodule” 这是否与gcloud试图从NPM服务器上自行下载所有节点模块,因此显然找不到我的本地模块有关?我不知道如何包含我自己的节点模块(它们也有自己的依赖项) 我感谢你事先和我一起思考。Node.js 为什么';gcloud应用程序部署是否包括我的定制模块?,node.js,google-app-engine,npm,node-modules,Node.js,Google App Engine,Npm,Node Modules,在我的节点应用程序脚本中,我需要一个自定义模块,它有自己的依赖项。在本地开发中,这一切都很好,一切都按预期进行。但是,当我想通过gcloud app deploy整体部署我的应用程序时,会出现以下错误: Updating service [myapp]...failed.
非常感谢您的帮助。当您运行
gcloud app deploy
命令时,SDK会自动创建一个.gcloudignore
文件,该文件的工作原理与.gitignore
类似,并过滤掉一些不会部署的文件或目录
默认情况下,
.gcloudignore
包含节点_modules/
目录,因此安装的依赖项不会与代码一起上载。您可以从.gcloudignore中删除此条目,然后再次尝试部署。Hmm,我不知道这一点。一旦我有机会(加上做stackoverflow奖励的事情),我就会尝试一下。如果我理解正确,我需要使用--ignore file=[file]标志进行部署,该标志指向一个空的.gcloudignore文件,该文件将覆盖自动生成的文件?您可以这样做是的。或者,如果您已经运行了gcloud app deploy,请编辑.gcloudignore文件以删除node_modules文件夹。我应该在何处/如何查看此类文件是否已存在?您应该能够看到它在运行gcloud app deploy的文件夹中运行ls-al。如果它不存在,你可以自己创建它(不要忘记点)