【问题标题】:Deploying Typescript NodeJS Server部署 Typescript NodeJS 服务器
【发布时间】:2016-02-04 23:45:15
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: node.js typescript


    【解决方案1】:

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

    tsconfig.json

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

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

    【讨论】:

    • 但这仍然需要手动步骤,不是吗?我正在寻找的是将 *.ts 推送到 repo,然后自动将其拉到服务器上,而无需登录,甚至更好,无需依赖服务器上的编译过程。如果失败了,那就麻烦了
    • 有时需要编译。使用 CI 编译,然后在成功时将编译后的文件部署到服务器是很常见的。另一种方法是使用npm 之类的东西仅将编译后的文件发布到然后触发部署到从npm 存储库中提取的服务器上。没有什么神奇的方法可以满足你的要求,你需要设置一个基础设施路径来为你处理这个问题。你可以在网上找到很多关于这方面的指南和教程,并且不必是特定于 TypeScript 的,因为在你编译之后,它毕竟只是 JavaScript
    • 对,所以答案是在开发机器上预编译代码并将其推送到相同的仓库或单独的仓库,仅用于编译的代码。现在为什么节点 app.ts 运行良好而没有 js 文件生成?
    • 您可能没有使用任何打字稿特定的关键字。 node 确实支持很好的 ES2015,所以它会对这些感到满意,但应该在任何 typescript 特定功能上出错。
    • 确实,仅使用非常基本的节点/快递服务器进行了尝试,很可能没有任何与打字稿相关的内容。感谢您的回答!
    猜你喜欢
    • 2022-01-09
    • 2018-04-18
    • 2019-01-02
    • 1970-01-01
    • 2014-09-02
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多