【问题标题】:TypeScript compile and keep commentsTypeScript 编译并保留注释
【发布时间】:2012-09-27 08:12:39
【问题描述】:

我希望我的 cmets 在生成的 javascript 文件中保持完整,默认情况下编译器会删除它们。有 tsc 参数吗? (用例是保留 /// 引用路径的 = ... 以进行 chutzpah 单元测试。)

【问题讨论】:

  • 感谢您的回答,我还在 Web Essentials Tools>Options>Web Essentials> Keep Comments 中找到了该选项,现在测试很容易:joeriks.com/2012/10/06/testing-typescript-with-chutzpah
  • 现在 Chutzpah 支持非常棒的 Typescript ootb,请参阅下面 Matthew Manela 的回答。

标签: typescript tsc


【解决方案1】:

自 2015 年起,您可以在项目中创建 tsconfig.json 并将 "removeComments": false 添加到其 "compilerOptions" 属性中,以便将您的 cmets 保留在生成的 javascript 文件中。


1。从终端为您的项目创建tsconfig.json 文件(如有必要)

tsc -init

2。将"removeComments": false 添加到tsconfig.json 文件中的"compilerOptions" 属性中

最后,您应该期望您的tsconfig.json 文件内容是这样的:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es5",
        "noImplicitAny": false,
        "sourceMap": false,
        "removeComments": false
    },
    "exclude": [
        "node_modules"
    ]
}

3。从终端将 .ts 文件编译成 .js 文件

  • 使用tsc myFile.ts 保留您的cmets
  • 使用 tsc --removeComments myFile.ts 删除您的 cmets

您可以在Typescriptlang.org tsconfig.json page 上了解有关tsconfig.json 编译器选项的更多信息。

此外,根据Typescript documentation,将truefalse 设置为"removeComments" 属性将不会影响以/*! 开头的版权标头cmets。因此,它们将始终出现在您的 .js 文件中。

【讨论】:

【解决方案2】:

当前使用的是 1.6.2,并且默认情况下会保留 cmets。编译器中唯一与注释相关的标志是 remove cmets。根据文档:

--removeComments
删除除以 /!* 开头的版权标头 cmets 以外的所有 cmets

【讨论】:

    【解决方案3】:

    您必须编辑基础 .csproj 文件并包含 -c 选项。
    看看这里:

    http://blorkfish.wordpress.com/2012/10/06/including-typescript-comments-in-generated-javascript/

    【讨论】:

      【解决方案4】:

      保留以/*! 开头的评论。

      示例:
      /*! this comment remains untouched */
      /* but this one will be removed */

      【讨论】:

      • 在 tsc 1.5(alpha) 中测试
      • 我无法在 tsc 1.5.3 中重现此内容。
      • 我不知道这是否已过时,但只有带有/*! 的标题注释将被保留,并启用removeComments 选项。所有其他人都将被删除。
      • 你知道官方文档哪里有提到这个吗?
      • 这里在“--removeComments”下提到:typescriptlang.org/docs/handbook/compiler-options.html
      【解决方案5】:

      Chutzpah 2.2 现在原生支持 TypeScript,因此您无需担心这一点。您可以直接在 .ts 文件上运行 Chutzpah,它会运行您的测试。

      【讨论】:

        【解决方案6】:

        是的,-c(或--cmets)选项;

        语法:tsc [选项] [文件..]

        示例:tsc hello.ts
        tsc --out foo.js foo.ts
        tsc @args.txt

        选项:
        -c, --cmets        发出 cmets 输出
        ...

        【讨论】:

        • 哪个版本介绍的?我得到error TS5023: Unknown compiler option 'comments'.1.0.3.01.5.0-alpha
        • 以 ! 开头的注释,例如 /*!注释 */ 被保留。当您只希望一些 cmets 保留在 js 转译文件中时,这很有帮助
        猜你喜欢
        • 1970-01-01
        • 2019-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-03
        • 2022-10-16
        相关资源
        最近更新 更多