Node.js 部署Typescript NodeJS服务器

Node.js 部署Typescript NodeJS服务器,node.js,typescript,Node.js,Typescript,将用TypeScript编写的NodeJS服务器部署到生产环境中的最佳实践是什么 我希望避免git存储库中每个脚本都有3个文件(ts、js、map) 我可以使用grunt/gulp创建“dist”目录并将所有编译的文件复制到那里,但无论如何,我都会将它们放在我的repo中。我可以为编译后的代码创建单独的repo,但我认为这并不理想 另外,当我运行node app.ts而没有js或地图存在时,它实际上启动一切正常。那么,节点服务器甚至需要编译的文件吗 注意:我没有任何编译脚本/任务,我的IDE正在

将用TypeScript编写的NodeJS服务器部署到生产环境中的最佳实践是什么

我希望避免git存储库中每个脚本都有3个文件(ts、js、map)

我可以使用grunt/gulp创建“dist”目录并将所有编译的文件复制到那里,但无论如何,我都会将它们放在我的repo中。我可以为编译后的代码创建单独的repo,但我认为这并不理想

另外,当我运行
node app.ts
而没有js或地图存在时,它实际上启动一切正常。那么,节点服务器甚至需要编译的文件吗


注意:我没有任何编译脚本/任务,我的IDE正在为我自动编译ts文件。

您可以使用typescript为您完成所有这些工作

tsconfig.json

{
    ...
    "outDir": "dist",
    "sourceMap": false,
    "declaration": false
}
  • outDir
    将文件编译到dist目录中
  • sourceMap
    将决定是否输出
    .map
    文件
  • 声明
    将决定是否输出
    .d.ts
    文件

可以找到更多选项,也可以找到有关使用
tsconfig.json
文件的信息

,但这仍然需要手动步骤,不是吗?我想要的是将*.ts推送到repo,然后在服务器上自动拉取它,而无需我登录,甚至更不用依赖服务器上的编译过程。如果那样做失败了,那就麻烦了。在某个时候,编译是必要的。使用CI编译并在成功后将编译后的文件部署到服务器是很常见的。另一种方法是使用类似于
npm
的方法,仅将编译后的文件发布到服务器上,然后触发部署到从
npm
存储库提取的服务器上。没有什么神奇的方法可以满足您的要求,您需要设置一个基础设施路径来为您处理这个问题。有很多关于这方面的指南和教程,你可以在网上找到,它们不必是特定于类型脚本的,因为编译后,它们都是JavaScript,所以答案是在dev机器上预编译代码,并将其推到相同的repo或单独的repo,只用于编译代码。现在,为什么node app.ts在没有js文件generadet的情况下运行良好?您可能没有使用任何特定于typescript的关键字。node确实支持一些ES2015,因此它会很高兴使用这些功能,但在任何特定于typescript的功能上都会出现错误。确实,只在非常基本的node/express服务器上尝试过它,很可能没有任何与typescript相关的功能。谢谢你的回答!