[Feature Request] 使 FileLoader 忽略 node_modules 中的 .ts 文件
## Background
我司基于 egg 开发了一个框架（简称 A），并作为 npm 包发布在内网

其它项目依赖此框架进行开发时，如果想把框架的 .ts 源码打包进 npm 包、方便调试，那么`egg-bin dev --ts`时，egg-core 会尝试加载 `node_modules/A/app/service/*.ts` ，然后因为 .ts 的语法而报错。

解决办法很简单，可以在框架 A 中对 FileLoader 增加过滤，将绝对路径含 `node_modules` 的 .ts 文件过滤掉即可。

~~我看了 FileLoader 是支持 filter 函数的，但是 egg 中 调用 `loadService()` 和 `loadController()` 的位置并没有传入任何参数，而这几个函数调用时的 ContextLoader ，所以实际上 FileLoader 的 filter 是无法被用户使用的。~~

~~希望在 Application 初始化时，能增加给一个传 filter 函数的属性，FileLoader 默认去加载这个 filter ，从而可以自行对扫描路径进行过滤。~~

## Proposal
~~在 Application 初始化时，能增加给一个传 filter 函数的属性，FileLoader 默认去加载这个 filter ，从而可以自行对扫描路径进行过滤，或者默认 filter 就是过滤掉包含 node_modules 的 .ts 文件路径，毕竟 node_modules 中通常只会用 .js ，而不会去编译。~~

我发现 filter 生效是在 `getExports` 报错之后的，所以增加 filter 函数也没有用。不过考虑到实际开发时，node_modules 中的任何 .ts 其实并不会被使用，只会用里面的 .js 文件，所以在 FileLoader 中直接把路径包含 node_modules 的 .ts 文件忽略即可

即在下面代码的内层循环中进行判断

https://github.com/eggjs/egg-core/blob/master/lib/loader/file_loader.js#L147-L172


## Additional context

已经提交 PR: https://github.com/eggjs/egg-core/pull/230