Visual Studio未编译TypeScript

agxfikkp  于 2022-11-30  发布在  TypeScript
关注(0)|答案(4)|浏览(248)

我有一个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文件夹中。
我错过了什么?

gcmastyq

gcmastyq1#

尝试将"compileOnSave": true添加到您的tsconfig.json

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

现在每次保存时都应该编译。

w8f9ii69

w8f9ii692#

Visual Studio中,选择“项目”〉“属性”〉“生成”〉确保选中“生成时编译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"
  ]
}

详情请参见TypeScriptherehere页。

不要忘记实际构建它。它不是文件监视器方案。

ttisahbt

ttisahbt3#

可能是typescript文件中的语法错误。

我的解决方案是回滚.ts文件,直到它编译完成(即typescript和javascript文件的时间戳是相同的),然后从那里开始修改.ts文件。如果在编译.ts文件后时间戳不相同,那么我们知道这可能是语法错误。我必须在每次修改后编译并检查时间戳。
不幸的是,语法错误没有显示在任何地方,所以我不得不依靠时间戳来确定文件是否被编译。
我在Visual Studio 2019中启用了保存时编译
以下是FileExplorer的屏幕截图,其中.ts出现错误。请注意时间戳的差异。

下面是一个FileExplorer的截图,其中的.ts文件被成功编译成了javascript。

7d7tgy0s

7d7tgy0s4#

在VS 2022中,将.ts文件的Property -〉Build Action从“None”更改为“TypeScript File”对我来说很有用。

相关问题