json5-to-table
json5-to-table copied to clipboard
没必要在require中使用捕获异常
https://github.com/yetrun/json5-to-table/blob/c42d667443ce0a9d9163113d18cb5103b548836f/lib/generateExcel.js#L4 这里感觉多此一举,只要在文档中告诉使用者需要依赖这个包就行了,而且在这里使用捕获异常会导致有的打包工具(如rollup)无法编译出正确的代码,需要手动配置dynamicRequireTargets
但这个文件确实需要引用这个包:
const xlsx = require('xlsx')
我的初步想法是,在外头能够引用 generateExcel 方法:
const { generateExcel } = require('json5-to-table')
但同时需要调用者自己加入 xlsx 包。因为 xlsx 包有点大,不想要默认添加进来。这样即便不用到 genearteExcel 方法,也就什么也不用做了。
我用的是 WebPack 工具,直接使用
const XLSX = require('xlsx')
会报错。退而求其次,使用 try...catch 捕获。
webpack中试过了确实没有问题,但有的框架使用的是rollup,它不能识别在try-catch中引入模块的写法,会报require is not defined错误,我把dist文件中的try-catch删掉就能正常运行了。
另外问一下,generateExcel导出的excel文件能支持宽度自适应吗?或者能否自己指定宽度?
说实话我不确定在 WebPack 中使用 try...catch 是否是标准做法,我觉得这个方法是有点怪怪的。但我不这么做其他人引入我的库时会报错。
generateExcel 目前还不能加入任何配置选项,默认结果可能是不支持宽度自适应吧。