Typescript 部署到Gcloud的应用程序可以';编译TS时不写JS文件?

Typescript 部署到Gcloud的应用程序可以';编译TS时不写JS文件?,typescript,gcloud,Typescript,Gcloud,我向现有的nodejs应用程序添加了一些TS代码 我第一次将项目从GitHub拉到gcloud时,一切都很好 这次,我做了一些更改,添加了更多的TS文件,现在应用程序在部署后将不会运行 Error: Server Error The server encountered an error and could not complete your request. Please try again in 30 seconds. 日志显示了在编写我的TS文件的JS版本时出现的一系列失败 { ins

我向现有的nodejs应用程序添加了一些TS代码

我第一次将项目从GitHub拉到gcloud时,一切都很好

这次,我做了一些更改,添加了更多的TS文件,现在应用程序在部署后将不会运行

Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.
日志显示了在编写我的TS文件的JS版本时出现的一系列失败

{
 insertId: "5eb4e6c8000b9ff215033be3"  
 labels: {…}  
 logName: "projects/ncatsidg-dev/logs/stdout"  
 receiveTimestamp: "2020-05-08T04:57:44.821184556Z"  
 resource: {…}  
 textPayload: "error TS5033: Could not write file '/srv/src/models/DataModelList.js': EROFS: read-only file system, open '/srv/src/models/DataModelList.js'."  
 timestamp: "2020-05-08T04:57:44.761842Z"  
}
我知道gcloud部署是只读的,但它应该能够编译TS并进行部署。我在package.json中有一个编译步骤,它应该为gcloud()将TS编译成JS,但是,唉,有些东西不起作用

  "scripts": {
    "test": "node src/index.js & jest",
    "start": "tsc && nodemon src/index.js",
    "start:ci": "tsc && node src/index.js",
    "gcp-build": "tsc -p ."
  },

谢谢你的回复

事实证明,gcloudappdeploy足够聪明,可以编译TS并部署JS

但当我把start命令改为

"start": "tsc && nodemon src/index.js"
因此,当应用程序运行时,它试图再次重新编译JS文件,但是已经完成了,所以没有必要这样做


当我在start命令中删除tsc时,它按预期工作。

此评论无法回答您的问题,但一个可能的解决方案可能是使用包来执行nodejs ts文件,而不执行编译步骤。从错误消息中,您可能试图写入
datamodelsist.js
文件,这是不允许的,因为除了
/tmp
目录外,该文件是只读的。我发现该目录无法写入,但是gcloud app deploy不应该处理这个问题吗,即编译文件,然后将文件移入?找到解决方案做得很好!你能?它将使它更为明显,并在您找到解决方案时帮助有相同问题的人。谢谢