ant-design-vue:导出excel表后报错:[Script Loader] ReferenceError: require is not defined解决

使用网上的通用插件搭建脚手架cli4时完全按照官网文档却一致报错:

[Script Loader] ReferenceError: require is not defined
at eval (eval at module.exports (addScript.js?436f:27), <anonymous>:1:1)。。。

这个报错是只要一刷新页面就会有

查询了网上各种资料和分析后(网上资料说这个的不多)分析应该是require 浏览器不能识别的原因,因为并不影响正常使用,虽然刷新页面和初始化都会报这个错误,但是只要导出都是正常的导出的数据也没有影响

长时间调试还是觉得报错很碍眼,方案一:下载兼容require的插件,并配置即可

方案二,直接改插件源码:(不是cnpm里的插件,而是下载下来的export2Excel.js)

在export2Excel.js内只要改动头部一行源码即可

改之前:
/* eslint-disable */
require('script-loader!file-saver');//保存文件用
require('script-loader!@/excel/Blob');//转二进制用
// require('./Blob');//转二进制用
require('script-loader!xlsx/dist/xlsx.core.min');//xlsx核心
...
改成:
/* eslint-disable */
require('script-loader!file-saver');//保存文件用
// require('script-loader!@/excel/Blob');//转二进制用
require('./Blob');//转二进制用
require('script-loader!xlsx/dist/xlsx.core.min');//xlsx核心

问题解决了,页面刷新和重绘不再报错

解决后:

 

请注意,我这边用的是vue-cli4 脚手架,是没有网上很多教程里的“在webpack.base.conf.js 里面增加resolve下一行代码
‘vendor’: path.resolve(__dirname, ‘…/src/vendor’),//新增加一行” 这样的操作的

 

posted @ 2020-07-08 17:20  少哨兵  阅读(6207)  评论(1编辑  收藏  举报