如果使用Webpack,我应该在tsconfig.json中指定根文件吗?

时间:2016-07-23 11:13:52

标签: javascript typescript webpack

official handbook about tsconfig.json说:

  

tsconfig.json文件指定编译项目所需的根文件和编译器选项。

据我了解, tsconfig.json 的根文件是tsc默认应编译的文件(即没有明确传递文件)。根据{{​​3}},我可以使用"文件"或"排除"用于定义根文件的属性。

  

如果没有"文件"属性存在于tsconfig.json中,编译器默认包含所有包含目录和子目录中的TypeScript(* .ts或* .tsx)文件。当一个"文件"属性存在,只包含指定的文件。

     

如果"排除"如果指定了property,则编译器将包含所有包含目录和子目录中的TypeScript(* .ts或* .tsx)文件,但排除这些文件或文件夹除外。

     

"文件"财产不能与"排除"属性。如果两者都被指定,那么"文件"属性优先。

我没有直接使用tsc。相反,我使用handbook来编译我的TypeScript文件。因此,我使用Webpack使用hjs-webpack

webpack.config.js

var getConfig = require('hjs-webpack');

var config = getConfig({
  in: 'src/index.ts',
  out: 'public',
  clearBeforeBuild: true
});

module.exports = config;

我在 webpack.config.js 中指定了所有入口点。如果我理解正确,awesome-typescript-loader告诉tsc这些条目文件是根文件。这意味着"文件"和"排除" tsconfig.json 的属性始终被tsc忽略。这是正确的吗?

我经常看到"排除" Webpack项目的 jsconfig.json 中的属性。最好的例子是awesome-typescript-loader(Webpack的另一个TypeScript加载器),它提到了这个配置步骤:

  
      
  1. 添加tsconfig.json文件。
  2.   
{
  "compilerOptions": {
    "target": "es5",
    "sourceMap": true
  },
  "exclude": [
    "node_modules"
  ]
}

如果"文件"和"排除"如果只使用Webpack进行编译,则总是忽略 tsconfig.json 的属性,为什么要指定" files"或"排除" tsconfig.json 中的属性?

如果您需要更多信息(例如关于我的设置),请发表评论以回答问题。

1 个答案:

答案 0 :(得分:2)

是的,如果您使用 webpack 进行编译,那么您不需要包含它,只需指向您要编译的唯一ts文件。您的加载器将查找用于编译配置的tsconfig文件。它在webapp中没有用处。

here is an example of webpack angular2 typescript seed i'm working on