最近有一个命令行工具的需求,决定用oclif开发,之前做demo用了node-fetch@3,只支持ESModule,然后就想试试用ESModule开发。
- 首先就遇到了TS加载ts文件找不模块的问题,找到了解决方案https://github.com/TypeStrong/ts-node/issues/1777
- 然后遇到了shebang的问题 加一个有点丑的.mjs解决
- 看了oclif的issues,让ts-node也可以运行shebanghttps://github.com/oclif/core/issues/421
- oclif的测试方案完全基于Commonjs,运行起来直接挂,缺少维护
- 测试框架选用的mocha,目前来说一切还好,但是不支持--watch参数https://github.com/mochajs/mocha/issues/4374
总之用ESMododule有大量意想不到的坑...体验很糟糕