awesome-typescript-loader报watchRun问题

本文介绍了解决在Webpack中集成TypeScript时出现的“Cannot read property 'WatchRun' of undefined”错误的方法。该错误主要由类型加载器版本与Webpack版本不兼容引起,通过将Webpack更新到4.x版本可以解决这一问题。

在学习webpack集成的过程中,遇到集成typescript时报如下错误“Can not read property 'WatchRun' of undefined”。如下图:
图片描述

此时如果打开编译后的bundle.js在最底部会有如下代码:

(function(module, exports) {

throw new Error("Module build failed: TypeError: Cannot read property 'watchRun' of undefined\n    at setupWatchRun (D:\\webpack project\\webpack持续集成\\3-1使用ES6语言\\node_modules\\awesome-typescript-loader\\src\\instance.ts:369:17)\n    at Object.ensureInstance (D:\\webpack project\\webpack持续集成\\3-1使用ES6语言\\node_modules\\awesome-typescript-loader\\src\\instance.ts:137:2)\n    at compiler (D:\\webpack project\\webpack持续集成\\3-1使用ES6语言\\node_modules\\awesome-typescript-loader\\src\\index.ts:47:19)\n    at Object.loader (D:\\webpack project\\webpack持续集成\\3-1使用ES6语言\\node_modules\\awesome-typescript-loader\\src\\index.ts:16:12)");

/***/ })
/******/ ]);

这是因为typescript的配置文件tsconfig.json中的sourceMap参数决定的:
图片描述

这个参数就是为了方便调试typescript。在报错之后错误会在浏览器的控制台里显示,就是图一的错误显示。

报这个错的主要原因是typescript加载器的版本和webpack的版本不兼容导致:
图片描述

官方有很多typescript加载器的loader。我用的是awesome-typescript-loader 5.0.0的版本,webpack版本此时是3.12.0版本的。把webpack版本更新到4.x可以解决了。
图片描述

注意:4.x版本的webpack需要和webpack-cli配合使用,安装完成后的package.json问价如下:
图片描述

安装之后重新编后的结果如下图:
图片描述

再打开浏览器页面就可以正常显示了,控制台的报错也消失了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值