【问题标题】:How to use typescript/flow in nodejs without compiling it如何在不编译的情况下在 nodejs 中使用 typescript/flow
【发布时间】:2017-04-06 18:23:24
【问题描述】:

谁能给我一些建议或链接以讨论我是否应该将 JS 捆绑到后端?

我试图用这个标题(和类似的词)谷歌,但我找不到任何有用的链接。

只是想知道,假设我使用的是最新的 Node.JS(支持 es6),我应该捆绑/编译 JS 吗?如果没有,我应该如何使用 typescript/flow?

谢谢。

【问题讨论】:

    标签: node.js typescript flowtype


    【解决方案1】:

    我觉得你在问两个不同的问题。我会尽量回答。

    我怎样才能只运行 TypeScript 代码?

    这是您的问题标题似乎要问的问题(“如何在不编译的情况下在 nodejs 中使用 typescript/flow”)。为此,您可以在 npm 上使用 ts-node 包。但是在生产环境中运行时使用 ts-node 而不是编译通常不是一个好主意,因为它往往没有那么快。

    TypeScript 代码应该如何分发才能运行?

    任何 TypeScript 代码都需要从 .ts 文件编译为 .js 文件才能最终运行。基本上类似的东西也适用于流代码。

    如果您计划分发一个用 TypeScript 编写的包,您应该将 .js.d.ts 文件一起发布。原来如此

    1. 您的软件包使用者不必重新编译您的软件包。 (他们已经获得了.js 文件。
    2. 您的非 TypeScript 使用者无需安装 TypeScript 即可使用您的包。 (他们已经有可运行的.js 文件)
    3. 您的 TypeScript 使用者可以获得良好的类型安全性和补全。 (他们会获取您的 .d.ts 文件)

    有关更多信息,请参阅Publishing Declaration Files 上的 TypeScript 文档。

    【讨论】:

    • 感谢您的详细回答。我从链接中学到了。谢谢!尽管我会将其他人的答案标记为“答案”,因为它在您之前得到了回答并且确实解决了我的问题(您的问题也解决了!)。
    • 为了清楚起见,甚至像 ts-node 或 babel-node 这样的东西也在做即时编译。我知道没有“原生”ES6 或 TypeScript 运行时。如果您希望在实际生产场景中使用 TS 之类的东西,请务必采纳上述建议并在开发端处理编译/转译步骤,而不是运行时。
    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 2016-09-19
    • 2023-03-21
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2019-07-22
    • 2013-11-02
    相关资源
    最近更新 更多