json5-to-table icon indicating copy to clipboard operation
json5-to-table copied to clipboard

没必要在require中使用捕获异常

Open bytrix opened this issue 4 years ago • 3 comments

https://github.com/yetrun/json5-to-table/blob/c42d667443ce0a9d9163113d18cb5103b548836f/lib/generateExcel.js#L4 这里感觉多此一举,只要在文档中告诉使用者需要依赖这个包就行了,而且在这里使用捕获异常会导致有的打包工具(如rollup)无法编译出正确的代码,需要手动配置dynamicRequireTargets

bytrix avatar Dec 04 '21 16:12 bytrix

但这个文件确实需要引用这个包:

const xlsx = require('xlsx')

我的初步想法是,在外头能够引用 generateExcel 方法:

const { generateExcel } = require('json5-to-table')

但同时需要调用者自己加入 xlsx 包。因为 xlsx 包有点大,不想要默认添加进来。这样即便不用到 genearteExcel 方法,也就什么也不用做了。

我用的是 WebPack 工具,直接使用

const XLSX = require('xlsx')

会报错。退而求其次,使用 try...catch 捕获。

yetrun avatar Dec 06 '21 06:12 yetrun

webpack中试过了确实没有问题,但有的框架使用的是rollup,它不能识别在try-catch中引入模块的写法,会报require is not defined错误,我把dist文件中的try-catch删掉就能正常运行了。

另外问一下,generateExcel导出的excel文件能支持宽度自适应吗?或者能否自己指定宽度?

bytrix avatar Dec 06 '21 09:12 bytrix

说实话我不确定在 WebPack 中使用 try...catch 是否是标准做法,我觉得这个方法是有点怪怪的。但我不这么做其他人引入我的库时会报错。

generateExcel 目前还不能加入任何配置选项,默认结果可能是不支持宽度自适应吧。

yetrun avatar Dec 06 '21 10:12 yetrun