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

g6baxovj  于 2023-11-20  发布在  TypeScript
关注(0)|答案(5)|浏览(316)

我的Visual Studio 2017 ASP.NET项目中有几个typescript文件用于我的应用myapp。我使用gulp任务来生成JS文件,所以我不希望构建或语言服务创建这些JS和JS.MAP文件。
这就是我的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/**/*"
  ]
}

字符串
我尝试了以下方法:
1.我把myapp添加到tsconfig.jsexclude部分,如果我关闭Visual Studio再打开的话,当时js和js.map都不会生成,但是我看到了很多编译错误。
1.我将<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>添加到.csproj文件中。我关闭VS 2017,再次打开并进行构建。我看到JS和JS.MAP文件。
1.我将BuildAction属性更改为none,但仍然可以看到JS和JS.MAP文件


的数据
我应该怎么做才能让TS文件的语法检查正常工作,但不会生成任何JS和JS.MAP文件?

ifsvaxew

ifsvaxew1#

尝试在tsconfig中添加"noEmit": true。它应该可以阻止.js . js.map生成。

e1xvtsh3

e1xvtsh32#

尝试在tsconfig中添加"noEmitOnError": true。如果TS文件中有任何错误,它应该会阻止.js .js.map生成。

deikduxw

deikduxw3#

如果Visual Studio似乎忽略了tsconfig文件中的noemit选项,请编辑项目文件。在项目文件中,转到包含其余TypeScript选项的<PropertyGroup>,并在该PropertyGroup的打开和关闭标记之间添加<TypeScriptNoEmit>True</TypeScriptNoEmit>

r7xajy2e

r7xajy2e4#

我注意到,如果我使用angular创建文件,它不会发出.js,但如果我通过New Item菜单从Visual Studio添加一个新的TypeScript文件,它会发出.js。结果发现后者将Build Action设置为“TypeScript file”,而前者将build action设置为None,不要复制。我将有问题的TypeScript文件更改为None,它停止了.js文件的生成。这与OPs声明的没有影响相反-但在我的例子中,它起作用了。设置noEmit:true只是导致没有为我的angular ng构建生成vendor.js文件。

d8tt03nd

d8tt03nd5#

我的问题是我不小心从我的tsconfig.json中删除了“outDir”。
为了解决这个问题,我重新添加了一行:

{
  "compilerOptions": {
    ...
    "outDir": "./dist",
    ...
  }
}

字符串
来自Typescript的输出指令:
如果指定,.js(以及.d.ts.js.map等)文件将被发送到此目录。原始源文件的目录结构将被保留;如果计算的根不是您想要的,请参阅rootDir。
如果未指定,则.js文件将在与生成它们的.ts文件相同的目录中发出

相关问题