所以我最近一直在尝试Angular及其功能。其中之一是tsconfig.json
中的CompileOnSave
功能,具有以下设置:
"outDir": "./dist/out-tsc",
"watch": true,
然而,这一切都有效,我看到添加新文件和修改现有文件之间的行为不同。在这两种情况下,文件修改都会编译到./dist/out-tsc
文件夹中。一切都很好。但是,添加新文件时,编译器还会在同一文件夹中生成一个.js文件及其相应的映射文件。这令人困惑。这是故意的吗?我应该手动删除它们还是可以自动删除?我的问题与类似
如何让Typescript编译器将编译后的js输出到其他目录?
但是,我已经配置了outDir
属性。我正在使用Visual Studio 2019。请从项目目录的一部分查看下面的屏幕截图。api.component.ts
是一个已存在的文件,其修改被编译到./dist/out-tsc
目录中。file.ts
、file1.ts
和file2.ts
是新文件,它们似乎被编译到创建它们的文件夹以及./dist-out-tsc
文件夹中。我的Angular版本是8.3.14。
来自视觉工作室的丝网印刷
我的tsconfig.json看起来像这样:
{
"compileOnSave": true,
"compilerOptions": {
"baseUrl": "./",
"module": "esnext",
"outDir": "./dist/out-tsc",
"watch": true,
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
}
}
我通过将其添加到.csproj文件中解决了问题。但是,我想强调的是,保存时编译在Visual Studio中已经关闭,Visual Studio重新启动。这就是为什么我猝不及防。我想这还不够。
<PropertyGroup>
<TypeScriptCompileOnSaveEnabled>False</TypeScriptCompileOnSaveEnabled>
</PropertyGroup>