我的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.js的exclude
部分,如果我关闭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文件?
5条答案
按热度按时间ifsvaxew1#
尝试在
tsconfig
中添加"noEmit": true
。它应该可以阻止.js . js.map生成。e1xvtsh32#
尝试在tsconfig中添加
"noEmitOnError": true
。如果TS文件中有任何错误,它应该会阻止.js .js.map生成。deikduxw3#
如果Visual Studio似乎忽略了tsconfig文件中的noemit选项,请编辑项目文件。在项目文件中,转到包含其余TypeScript选项的
<PropertyGroup>
,并在该PropertyGroup的打开和关闭标记之间添加<TypeScriptNoEmit>True</TypeScriptNoEmit>
。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文件。
d8tt03nd5#
我的问题是我不小心从我的
tsconfig.json
中删除了“outDir”。为了解决这个问题,我重新添加了一行:
字符串
来自Typescript的输出指令:
如果指定,
.js
(以及.d.ts
、.js.map
等)文件将被发送到此目录。原始源文件的目录结构将被保留;如果计算的根不是您想要的,请参阅rootDir。如果未指定,则
.js
文件将在与生成它们的.ts
文件相同的目录中发出