为什么要从tsconfig中排除wwwroot?

时间:2016-02-16 04:57:21

标签: asp.net typescript asp.net-core .net-4.6

我在VS.NET 2015中使用ASP.NET 5模板处理TypeScript项目。我添加了scripts/tsconfig.json文件,默认情况下它包含以下exclude部分:

  "exclude": [
    "node_modules",
    "wwwroot"
  ]

然而,通过教程我还看到我应该将TypeScript构建输出配置到以下目录:

"outDir": "../wwwroot"

从官方TypeScript wiki陈述exclude的定义:

  

如果指定了“exclude”属性,则编译器包括all   包含目录和中的TypeScript(* .ts或* .tsx)文件   除了那些被排除的文件或文件夹之外的子目录。

我的困惑是因为tsconfig.json文件将设置应用于其所在文件夹中的虚拟打字稿项目,而我的文件位于/scripts文件夹中,我是否还需要该设置?为什么我会排除wwwroot,为什么会自动添加该设置?我不打算在wwwroot文件夹中包含/scripts文件夹,所以我试图理解为什么要将其排除在外?或者它是默认添加的,因为我可以将我的tsconfig.json文件夹添加到我的项目的根目录,在这种情况下,人们会想要排除wwwroot文件夹?

2 个答案:

答案 0 :(得分:1)

wwwroot目录用于输出文件。在典型的ASP.NET 5 Web项目中,* .js / * .css文件将从* .ts和* .less / * .sass编译。此源文件是项目的一部分和您使用的代码。

在构建,更改或发布时,您编译成ie * .js,将它们合并到一个文件中,例如minify(aka uglify),然后将它们复制到wwwroot中的文件夹以及所有静态文件你的网络项目。

使用exclude: "wwwroot",你告诉不要在那里搜索* .less / *。sass / * .ts文件,因为这些文件中没有文件应该位于那里。

答案 1 :(得分:0)

类型脚本编译器搜索typescript文件(输入)并在每个文件夹中编译它们。使用排除,您告诉编译器不要在wwwroot文件夹中搜索(输入)打字稿文件。 outDir告诉typescript编译器输出编译的文件到wwwroot。然后,您编译的文件可以提供给客户端。