[英]Should I specify root files in tsconfig.json if Webpack is used?
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加载器),其中提到了此配置步骤:
- 添加一个tsconfig.json文件。
{
"compilerOptions": {
"target": "es5",
"sourceMap": true
},
"exclude": [
"node_modules"
]
}
如果仅使用Webpack进行编译时,始终忽略tsconfig.json的 “ files”和“ exclude”属性,为什么要在tsconfig.json中指定“ files”或“ exclude”属性?
如果您需要更多信息(例如有关我的设置)来回答问题,请写评论。
是的,如果您使用webpack进行编译,则无需包含它,只需指向要编译的ts文件即可。 您的加载程序将寻找tsconfig文件进行编译配置。 在webapp中没有任何用途。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.