世纪巨坑:react 使用 xlsx-style导出,报错:Can‘t resolve ‘./cptable‘ in ‘xxx\node_modules_xlsx

博客讲述了在React项目中使用xlsx-style库遇到的'./cptable'模块未找到的错误。作者尝试了多种解决方案,如直接修改node_modules和调整vue.config.js,但这些都不适用于React项目。最终,通过修改webpack配置,在output下添加externals字段,将'./cptable'映射为'varcptable'成功解决了问题。此方法避免了对node_modules的直接修改,确保了代码的可复用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

react 使用 xlsx-style导出,报错:Can‘t resolve ‘./cptable‘ in ‘xxx\node_modules_xlsx

问题:
1.网上大多数的解决方案都是直接改node_moudels,这样是非常不可取的方案,如果别人拉你的代码,直接npm install,岂不是别人也要去修改node_moudels?
2.还有一部分vue使用者给出解决方案,对vue.config.js进行修改,这个比较合理,但是我用的是react呀。。。
3.最后得出一个结论,要去修改webpack中的配置,让所有的./cptable都变成var cptable,那么问题来了,怎么修改???

解决方案:
我的解决方案是把config暴露出来,然后对其中的webpack.config.js文件进行更改:
在output下增加

externals: [
      {
          './cptable': 'var cptable',
          '../xlsx.js': 'var _XLSX'
      }
    ], 

然后停掉项目,重新start,就不会报错了,而且样式也出现了。
小声bb:整整琢磨了一天,看了内网,外网所有关于这个问题的解决方案,写代码太磨人了

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值