huozhi / bunchee

Zero config bundler for ECMAScript and TypeScript packages
https://npmjs.com/bunchee
858 stars 28 forks source link

`--dts` does not generate `.d.ts` for JavaScript files #517

Closed devjiwonchoi closed 2 months ago

devjiwonchoi commented 2 months ago

repro: https://github.com/devjiwonchoi/repro-bunchee-dts bunchee version: 5.1.2

devjiwonchoi commented 2 months ago

requires tsconfig, silly me.

devjiwonchoi commented 2 months ago

But, could this be supported? create .d.ts for JS without js/tsconfig. Or else, need action to inform that requires tsconfig

huozhi commented 2 months ago

if you run bunchee directly and let it detect the project it can generate tsconfig for you. We can warn for them that tsconfig is missing, but I'm not sure if we should generate one for them yet since CLI could run from anywhere then cwd can be anywhere as well

devjiwonchoi commented 2 months ago

I was confused about --dts since, for typescript files, .d.ts is always generated unless --no-dts is set. Therefore, I thought --dts was for the javascript files to generate .d.ts. If not, it seems --dts is missing a place to function at the moment. Maybe we could a) remove it from the flag and keep it on API, or b) support generating .d.ts from javascript? I need more investigation, but it seems like rollup-plugin-dts can handle b) it with allowJS (stated not recommended tho).

huozhi commented 2 months ago

Ah yeah you're right. --dts it's kinda always enable if tsconfig.json is present. So it's not a very useful flag...

Ideally if you have <cwd>/tsconfig.json it should be enabled, if you don't have tsconfig.json it's always disabled. We should probably just drop that flag but still keep --no-dts

devjiwonchoi commented 2 months ago

Thanks for the clarification! 😆