创建React应用程序TypeScript:仅进行转译,不进行类型检查,也不进行代码风格检查。

4
我有一个小的React项目,希望将其部署在内存受限(少于1.5GB)的Google Compute Engine实例上。在构建应用的生产版本时,TypeScript linter和compiler通常会使用大约2GB的RAM来转换这个微小的项目,因此当我部署时,Compute Engine实例在项目构建完成之前就已经耗尽了内存。
如何让TypeScript编译器不做任何事情,只尝试将其转译为JavaScript?没有代码规范检查,没有ts配置规则检查,仅仅做最少量的工作:转译应用程序?
我查看了tsConfig的所有标志,即使是最不严格的选项仍然做了太多的工作。
谢谢
2个回答

0
一旦项目已经为生产环境构建完成,您应该会有一个可以部署到Google Compute Engine实例的build文件夹。此时它只是HTML、JavaScript和CSS的集合。由于此时没有进行转译,因此RAM使用量应该可以忽略不计,只有静态文件被提供。
然而,如果您将整个源代码部署到Google Compute Engine并使用"start" npm任务,则会在那里进行整个转译。这不是推荐的方法。
最好使用像nginxexpress这样的Web服务器来提供构建生成的静态文件。

1
你说得对,构建文件不应该被检入版本控制,但这与部署无关。看起来你已经完成了大部分工作,真正的问题是你在部署源代码时,实际上只需要预先构建的静态文件和你的 Express 服务器。没有任何理由在部署目标上构建项目。 - UncleDave
1
我对Google云不是特别熟悉,但如果他们没有某种形式的FTP功能,我会感到惊讶。或者,如果这是一个您完全控制的VM,则没有任何阻止您安装自己的FTP服务器。如果它是Windows,则可以使用远程桌面从本地系统复制文件。如果它是Linux并且您通过SSH连接,则可以使用scp来复制文件。 - UncleDave
我对虚拟机有完全的控制权,我会考虑使用FTP。谢谢!有趣的是,我已经在使用Google Cloud元数据服务器提供的环境变量时使用了它。我只需将构建目录放在那里,然后以同样的方式将其拉下来即可。 - Tunji_D
他正在谈论构建时间问题,而不是运行时问题。 - Kazuya Gosho
@KazuyaGosho 是的,那就是我们讨论过的。这个答案与运行时问题无关。我不明白你在说什么。 - UncleDave
显示剩余2条评论

0

简短回答:不,你不能使用Create React App(CRA)禁用类型检查。

详情

无法禁用TypeScript检查,所以你只能eject或者react-app-rewired并编写自己的Babel配置。 我的建议是完全清除CRA,然后自己编写webpack配置,并使用ts-loader的transpileOnly选项。

如果你只想编译而不管TS错误,你应该设置以下环境变量。

TSC_COMPILE_ON_ERROR=true

CRA在TypeScript检查失败的情况下仍会进行编译。 但是,它不会禁用类型检查,但不会因TypeScript错误而失败。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接