这两天需要做一个pdf合同比对的组件,用到react-pdf;遇到一些问题,记录下处理过程;
环境:
umi: 2.13.12
react: ^16.8.0
antd: 3.26.20
上手直接yarn add react-pdf 7.1.3 最新版本呗;ok 跑! 傻眼了不,报错
降版本,react-pdf 6.2.2, 也报错
react-pdf@5.2.0 是ok的。但是我这次一定要用6以上的版本,只能想办法解决。
先记录下最终解决方法吧 在umi工程的config目录下config.js文件里,加了这么一段配置,同时 yarn add @babel/preset-env@7.20.2 -D 完美解决了。
chainWebpack(config, { webpack }) {
config.module
.rule('compile')
.test(/\.(mjs|jsx|js)$/)
.include
.add(path.join(__dirname, '../node_modules/pdfjs-dist/build'))
.end()
.use('babel')
.loader('babel-loader')
.options({
presets: [
['@babel/preset-env', { modules: false }]
],
plugins: [
'@babel/plugin-syntax-dynamic-import',
// ...
],
});
}
方法出自github, 原因就是pdfjs-dist新版本用的新语法,然后react-pdf从6版本开始引用他也放弃了引用legacy目录下的代码,老工程就傻了。