vue+ts 使用了fork-ts-checker-webpack-plugin后,语言检查出错时,页面没有实时报错信息怎么办(编辑器的控制台是有的)
已经将fork-ts-checker的等待异步结果关掉
(以github上的某项目做的例子https://github.com/TypeStrong...)
vue+ts 使用了fork-ts-checker-webpack-plugin后,语言检查出错时,页面没有实时报错信息怎么办(编辑器的控制台是有的)
已经将fork-ts-checker的等待异步结果关掉
(以github上的某项目做的例子https://github.com/TypeStrong...)
9 回答1.6k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
6 回答764 阅读
2 回答1.8k 阅读
2 回答1k 阅读✓ 已解决
4 回答826 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2019/7/15更新:
首先总结一下webpack转译Typescript现有方案吧:
综合考虑性能和扩展性,目前比较推荐的是
babel+fork-ts-checker-webpack-plugin
方案用实例解释一下吧。
首先是单进程方案:
单进程因为是同步所以webpack可以收集错误信息,并通过dev-server反馈到浏览器:
现在试试多进程方案:
Ok,同样可以工作:
对于babel还是atl,配置方式同理, 只是把ts-loader替换而已。
更新分割线
谢邀。
没猜错的话,你使用的应该是vue-cli的Typescript插件? 先解释一下
fork-ts-checker-webpack-plugin
的原理:fork-ts-checker-webpack-plugin,顾名思义就是创建一个新进程,专门来运行Typescript类型检查。这么做的原因是为了利用多核资源来提升编译的速度. 所以大多数CLI都是这样子配置的:
再回到题目本身。因为fork-ts-checker-webpack-plugin是在单独的进程跑的,所以它的错误或警告信息是异步回传给到webpack进程的。而当webpack自己处理完转译任务后,会将结果同步报告给浏览器去显示。所以就造成题目说的现象。
解决的办法也有,官方文档已经说的很明白:
将async设置为false后,就要求webpack等待fork-ts-checker-webpack-plugin进程返回信息。不过这样做也可能会拖慢整个webpack的转译等待时间。这就要看怎么选择了
欢迎关注我,跟我交流。