使用Webpack在项目上运行`tsc`会抛出webpack中未见到的错误

时间:2018-04-29 00:30:37

标签: typescript webpack

我使用Webpack构建我的Typescript项目。但是,随着我的项目变大,webpack正在放慢速度。

我想使用tsc将打字稿打入一个单独的流程。

但是,当我在项目上运行tsc时,我收到了类型声明错误,这是我在使用ts-loader进行Webpack时无法获得的。

我认为这是因为typescript和webpack在导入模块方面有所不同。

  

模块解析:   知道这个插件使用的是打字稿非常重要,   不是webpack的模块解析。这意味着你必须设置   tsconfig.json正确。例如,如果您设置文件:   tsconfig.json中的['./src/someFile.ts'],这个插件只会检查   someFile.ts用于语义错误。这是因为性能。目标   这个插件应该尽可能快。使用打字稿的模块   解决方案我们不必等待webpack编译文件(其中   在编译期间遍历依赖图) - 我们有一个完整的列表   从开始的文件。   https://github.com/Realytics/fork-ts-checker-webpack-plugin#modules-resolution

以下是一些示例错误:

node_modules/@types/node/index.d.ts:143:13 - error TS2300: Duplicate identifier 'require'.
node_modules/@types/react-native/index.d.ts:8719:14 - error TS2300: Duplicate identifier 'require'.
node_modules/@types/react-native/index.d.ts:8745:18 - error TS2717: Subsequent property declarations must have the same type.  Property 'geolocation' must be of type 'Geolocation', but here has type 'GeolocationStatic'.
node_modules/@types/webpack-env/index.d.ts:203:13 - error TS2300: Duplicate identifier 'require'.
node_modules/rxjs/scheduler/VirtualTimeScheduler.d.ts:24:15 - error TS2416: Property 'work' in type 'VirtualAction<T>' is not assignable to the same property in base type 'AsyncAction<T>'.

更多详细信息:https://gist.github.com/IanEdington/b1567b2cabae262eac8a6ef6a4206d4b

1 个答案:

答案 0 :(得分:0)

感谢@qDot解决这个问题:https://github.com/Realytics/fork-ts-checker-webpack-plugin/issues/116#issuecomment-385286544

  

这是节点和打字稿库发生冲突的问题。参见:

     

https://github.com/Microsoft/TypeScript/issues/23769

     

快速修复:返回@types/node v9.6.7,直到可以修复v10。