我有一个Visual Studio项目,其结构如下:
我的tsconfig.json
看起来像是:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"outDir": "../wwwroot/"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
但是,VS没有将app.ts
编译到wwwroot
文件夹中。
我错过了什么?
答案 0 :(得分:9)
尝试将"compileOnSave": true
添加到tsconfig.json
:
{
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"outDir": "../wwwroot/"
},
"exclude": [
"node_modules",
"wwwroot"
],
"compileOnSave": true
}
每次你现在保存它都应该编译。
答案 1 :(得分:4)
从 Visual Studio ,项目> 属性> 构建> 确保&# 34;在构建时编译TypeScript"检查:
此外,在您的tsconfig.json
中,您应指定rootDir
,以便 TypeScript 知道应该在哪里查找应编译的*.ts
文件:
{
"compileOnSave": true,
"compilerOptions": {
"noImplicitAny": false,
"noEmitOnError": true,
"removeComments": false,
"sourceMap": true,
"target": "es5",
"outDir": "../wwwroot/",
"rootDir": "../wwwroot/"
},
"exclude": [
"node_modules",
"wwwroot"
]
}
有关详细信息,请参阅 TypeScript 页面here和here。
别忘了实际构建它。它不是文件观察者场景。
答案 2 :(得分:1)
这可能是打字稿文件中的语法错误。
我的解决方案是回滚 .ts
文件直到它编译(即打字稿和 javascript 文件的时间戳相同)并从那里开始更改 .ts
文件。如果编译 .ts
文件后时间戳不相同,那么我们知道这可能是语法错误。我必须在每次更改后进行编译并检查时间戳。
遗憾的是没有在任何地方显示语法错误,所以我不得不依靠时间戳来确定文件是否被编译。
我在 Visual Studio 2019 中启用了保存时编译
以下是 FileExplorer 的屏幕截图,其中 .ts
有错误。请注意时间戳的差异。
下面是 FileExplorer 的截图,其中 .ts
文件成功编译成 `javascript。 Motic 的时间戳是相同的。