Open kukushouhou opened 7 months ago
这个问题在这一行日志:
error - TS5055: Cannot write file 'F:/JavaScript/umi-plugin-test/dist/cjs/index.js' because it would overwrite input file.
发现貌似是重复写了这个 js 产物文件,原因我没有细查,但添加 tsconfig 的 include 范围后可以正常构建了:
"include": ["src"]
@PeachScript 有时间了可以辛苦看下这个是什么原因,现在 father 必须要添加 include 吗,entry 默认是 ./src/index
吧,其实就是默认 src 了;另外我理解 rootDir: "./src"
和 outDir: "./dist"
这两个也是默认的行为,其实用户不在 tsconfig 里写这俩配置也无所谓。
输出的日志看似是再试图重复写这个index.js产物,但实际我debug时在getDeclarations方法中断执行,然后把index.js产物删除后继续执行,他最终只输出了index.d.ts文件,没有再次写入index.js文件,因此我不认为是他重复写了这个 js 产物文件.
具体debug过程如图:
你好问题有修复吗,build的时候还是有遇到相似的问题
Version
4.4.0
OS Version
Windows 11 23H2
Node.js Version
v18.16.1
Link to minimal reproduction
https://github.com/kukushouhou/umi-plugin-test
Steps to reproduce
通过脚手架直接生成工程后编译就能复现错误,以下是日志
What is expected?
预期是能正常输出.d.ts文件.
What is actually happening?
实际输出.d.ts文件时报"cjs/index.js"文件已存在的错误
Any additional comments? (optional)
我尝试Debug找问题没找到. 我尝试把断点打到getDeclarations方法上,然后编译中断时把"cjs/index.js"文件删除后继续执行,就能正常编译出"cjs/index.d.ts"文件.
感觉应该是判断文件是否存在的方法传参传错了,但我没找到这个方法具体在哪里
试过降级到v4.3.8和v4.3.7问题依然存在,也在MacOS下尝试过问题一致