如何阻止Typescript编译器在Visual Studio 2017中生成JS和JS.MAP文件?

won*_*rld 5 visual-studio typescript

Visual Studio 2017 ASP.NET项目中,我的应用程序有一些打字稿文件。我使用了一项gulp任务来生成JS文件,因此我不希望创建这些JS和JS.MAP文件的构建或语言服务。myapp

这是我的TSCONFIG文件的样子:

{
  "compileOnSave": false,
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "module": "system",
    "types": [ "" ],
    "lib": [
      "es6",
      "dom"
    ]
  },
  "include": [
    "./myapp/**/*"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

  1. 我在tsconfig.jsmyappexclude部分中添加了。无论是js和js.map不会在那个时候产生的,如果我关闭Visual Studio和再次打开。但是我看到很多编译错误。

  2. 我已添加<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>.csproj文件中。我关闭了VS 2017,再次打开并进行了构建。我看到了JS和JS.MAP文件。

  3. 我将该BuildAction属性更改为none,但仍然看到JS和JS.MAP文件

在此处输入图片说明

我应该怎么做才能对TS文件进行语法检查,但是不会生成任何JS和JS.MAP文件?

Nat*_*iel 6

尝试添加"noEmit": true您的tsconfig. 它应该阻止 .js .js.map 生成。

  • @ChristopherThomas检查你的打字稿版本,如果它早于4.0,那么有一个名为“incremental”:true的标志与“noEmit”:true冲突 (2认同)

Rob*_*Rob 1

我注意到,如果我使用 Angular 创建文件,它不会发出 .js,但如果我通过“新建项”菜单从 Visual Studio 添加新的 TypeScript 文件,它就会发出。事实证明,后者将构建操作设置为“TypeScript 文件”,而前者将构建操作设置为“无,不复制”。我将有问题的 TypeScript 文件更改为“无”,并且已停止生成 .js 文件。这与 OP 的声明相反,即它没有影响 - 但就我而言,它起作用了。设置 noEmit: true 只会导致没有为我的 Angular ng 构建生成vendor.js 文件。