当前位置: 首页 > 知识库问答 >
问题:

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

商璞
2023-03-14

关于tsconfig.json的官方手册说:

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

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

“Files”属性不能与“Exclude”属性一起使用。如果两者都指定,则“Files”属性优先。

我没有直接使用tsc。相反,我使用Webpack来编译我的TypeScript文件。因此,我使用的是hjs-webpack,它使用awesome-typescript-loader:

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那些条目文件是根文件。这意味着tsc总是忽略tsconfig.json的“files”和“exclude”属性。这样对吗?

{
  "compilerOptions": {
    "target": "es5",
    "sourceMap": true
  },
  "exclude": [
    "node_modules"
  ]
}

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

共有1个答案

郑鸿朗
2023-03-14

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

下面是我正在处理的webpack angular2 typescript seed的一个示例

 类似资料:
  • 问题内容: 考虑以下: 文件将被正确关闭,还是使用某种方式绕过上下文管理器? 问题答案: 是的,它的作用就像一个块接一个块,也就是说,它总是执行(除非python进程以异常的方式终止)。 PEP-343的一个示例中也提到了该语句,它是该语句的规范: 但是,值得一提的是,如果不将整个块放入通常不是您想要的块中,就无法轻松捕获调用引发的异常。

  • 这里有一个声明主子程序的简短Perl 6程序。我应该只看到输出,如果我直接执行程序: 当我直接执行程序时,我会看到输出: 如果将其作为模块加载,则看不到输出: 同样,如果我在程序内部使用它,我看不到输出: 但是,如果我使用,我会得到以下输出: Synopsis06字面上说编译单元是直接调用的,而不是被需要的。是否因为在运行时起作用(尽管S06不排除这一点)而发生了其他事情? 我在2016年7月和2

  • 问题内容: 使用Java 8和lambda,可以很容易地将集合作为流进行迭代,也很容易使用并行流。docs中的两个示例,第二个示例使用parallelStream: 只要我不关心顺序,使用并行会始终有益吗?有人会认为,更快地将工作划分到更多的内核上。 还有其他考虑事项吗?什么时候应该使用并行流,什么时候应该使用非并行? (问这个问题可以引发关于如何以及何时使用并行流的讨论,不是因为我认为始终使用并

  • AccessibilityService在系统的内存管理方面与普通服务有何不同? 我想问的是:系统可以为了节省内存而关闭AccessibilityService吗?如果可以,当您进入AccessibilityService时,您会看到它打开还是关闭?用户是否必须再次手动打开? 使用startForeground是否有助于使AccessibilityService保持活动状态? 在一个类似的问题中,

  • 问题内容: 使用JavaScript更改当前网页位置的首选方法是什么?我已经看到使用window.navigate和document.location了。行为上有区别吗?浏览器的实现是否有所不同? 问题答案: 是用于更改当前窗口位置的标准实现。

  • 问题内容: 我知道该ValueEventListener线程在新线程中运行,是否应该在任何时间删除此线程以进行适当的线程管理?(例如,没有太多并行运行的线程)。如果是,该怎么办? 问题答案: 在谈论监听器时,是的,您需要根据活动的生命周期将其删除,为此,您需要使用以下代码行: 请记住,如果不这样做,最终将浪费您的电池和带宽。所以: 如果已在中添加了侦听器,则onStart必须在中将其删除onSto