我使用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
答案 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。