Visual Studio不编译TypeScript

时间:2016-05-16 20:03:17

标签: visual-studio typescript visual-studio-2015 asp.net-core

我有一个Visual Studio项目,其结构如下:

Folder structure

我的tsconfig.json看起来像是:

{
  "compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "outDir": "../wwwroot/"
  },
  "exclude": [
    "node_modules",
    "wwwroot"
  ]
}

但是,VS没有将app.ts编译到wwwroot文件夹中。

我错过了什么?

3 个答案:

答案 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"检查:

enter image description here

此外,在您的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 页面herehere

别忘了实际构建它。它不是文件观察者场景。

答案 2 :(得分:1)

这可能是打字稿文件中的语法错误。

我的解决方案是回滚 .ts 文件直到它编译(即打字稿和 javascript 文件的时间戳相同)并从那里开始更改 .ts 文件。如果编译 .ts 文件后时间戳不相同,那么我们知道这可能是语法错误。我必须在每次更改后进行编译并检查时间戳。

遗憾的是没有在任何地方显示语法错误,所以我不得不依靠时间戳来确定文件是否被编译。

我在 Visual Studio 2019 中启用了保存时编译


以下是 FileExplorer 的屏幕截图,其中 .ts 有错误。请注意时间戳的差异。

enter image description here

下面是 FileExplorer 的截图,其中 .ts 文件成功编译成 `javascript。 Motic 的时间戳是相同的。

enter image description here