繁体   English   中英

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

[英]Should I specify root files in tsconfig.json if Webpack is used?

关于tsconfig.json官方手册说:

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

据我了解, tsconfig.json的根文件是tsc默认应编译的文件(即,没有任何文件被显式传递)。 根据手册 ,我可以使用“文件”或“排除”属性来定义根文件。

如果tsconfig.json中不存在“文件”属性,则编译器默认将所有TypeScript(*。ts或* .tsx)文件包含在包含的目录和子目录中。 存在“文件”属性时,仅包含指定的文件。

如果指定了“ exclude”属性,则编译器将在包含目录和子目录中包括所有TypeScript(*。ts或* .tsx)文件,但那些文件或文件夹除外。

“文件”属性不能与“排除”属性一起使用。 如果两者都指定,则“文件”属性优先。

我不是直接使用tsc 相反,我使用Webpack编译我的TypeScript文件。 因此,我正在使用使用了awesome- typescript-loader的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的“ files”和“ exclude”属性始终被tsc忽略。 这是正确的吗?

我经常在Webpack项目的jsconfig.json中看到“排除”属性。 最好的示例是ts-loader (Webpack的另一个TypeScript加载器),其中提到了此配置步骤:

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

如果仅使用Webpack进行编译时,始终忽略tsconfig.json的 “ files”和“ exclude”属性,为什么要在tsconfig.json中指定“ files”或“ exclude”属性?


如果您需要更多信息(例如有关我的设置)来回答问题,请写评论。

是的,如果您使用webpack进行编译,则无需包含它,只需指向要编译的ts文件即可。 您的加载程序将寻找tsconfig文件进行编译配置。 在webapp中没有任何用途。

这是我正在处理的webpack angular2打字稿种子的示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM