美文网首页
pdfjs-dist编译报错

pdfjs-dist编译报错

作者: golddream_y | 来源:发表于2021-04-18 16:30 被阅读0次

错误说明:

pdf.js的新版本默认使用了很多TC39还在stage阶段的语法,并且package.json主入口锁定为非编译成es5的版本,而在vue-cli的默认配置下缺少相关编译的loader,导致编译报错。

这里建议无论是工程引用还是库引用,要么引用编译后的文件,要么锁定依赖版本

解决思路有三:

1、修改工具链,增加babel相关语法的plugin。

2、工程在引用pdfjs-dist的时候直接指向编译后的产出物,而不是包名。(import路径请注意参考:https://github.com/mozilla/pdf.js/issues/13190#issuecomment-815600801

3、降低pdfjs-dist版本到无草案版本。

以上1工具链修改如下,2、3因为是修改代码就不介绍了。

错误现象:

ERROR1:

Module parse failed: Unexpected token (2902:55)
File was processed with these loaders:
 * ./node_modules/cache-loader/dist/cjs.js
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|                   intent: renderingIntent,
|                   renderInteractiveForms: renderInteractiveForms === true,
>                   annotationStorage: annotationStorage?.getAll() || null
|                 });
|               }

ERROR2:

Module parse failed: Unexpected token (4323:147)
File was processed with these loaders:
 * ./node_modules/cache-loader/dist/cjs.js
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|                 numPages: this._numPages,
|                 annotationStorage: (annotationStorage === null || annotationStorage === void 0 ? void 0 : annotationStorage.getAll()) || null,
>                 filename: ((_this$_fullReader = this._fullReader) === null || _this$_fullReader === void 0 ? void 0 : _this$_fullReader.filename) ?? null
|               }).finally(function () {
|                 if (annotationStorage) {

ERROR3:

class private methods are not enabled.

原因:

vue-cli默认的配置不能编译草案语法 Optional chainingNullish coalescing operatorPrivate class features

optional chaining (a?.b)

nullish coalescing operator (a ?? b)

解决操作:

  1. 升级预置

    NOTE: This plugin is included in @babel/preset-env, in ES2022

  2. 增加babel编译插件(先去MDN或rfc找特性关键字,然后去babel找对应插件)

    插件地址:https://www.babeljs.cn/docs/babel-plugin-proposal-optional-chaining

npm install --save-dev @babel/plugin-proposal-optional-chaining
npm install --save-dev @babel/plugin-proposal-nullish-coalescing-operator
npm install --save-dev @babel/plugin-proposal-private-methods

安装后在babel配置文件babel.config.js.babelrc增加babel插件引用:

plugins: ['@babel/plugin-proposal-optional-chaining','@babel/plugin-proposal-nullish-coalescing-operator','@babel/plugin-proposal-private-methods']

然后正常执行构建就可以了。

相关文章

  • pdfjs-dist编译报错

    错误说明: pdf.js的新版本默认使用了很多TC39还在stage阶段的语法,并且package.json主入口...

  • iOS 错误汇总

    Xcode11.2编译报错,报错如下 解决: xcode编译报错,报错如下 解决:在Build Phases,新增...

  • OC和Swift混编

    编译报错: 报错一>

  • Python局部变量和全局变量的坑

    PyCharm编译不报错,但运行报错,可能是编译器认为while True可能不会进入,所以编译不报错。 编译器报...

  • Execution failed for task ':zz:t

    背景 debug版本编译正常,release版本编译报错. 编译报错日志 分析 具体问题在报错信息中并不明显,没有...

  • PDf预览组件封装--vue

    通过pdfjs-dist讲pdf转为图片进行预览的方式存在失真的问题 npm i pdfjs-dist -S 使用

  • vue3 + pdfjs-dist 实现pdf预览

    vue-pdf不支持vue3,pdfjs-dist引入直接报错? 赶紧抄一下这位大佬的作业,这也太能打了! htt...

  • CocoaPods报错解决

    1 报错:拉取最新代码后,编译报错。工程编译提示Pods-framework.sh:No Such File or...

  • JAVA泛型的思考

    看下边这段代码: 编译是否会报错?运行是否会报错? 结果是编译不会报错,运行时第二行报错:java.lang.Ar...

  • delphi控件Ehlib v4.2

    delphi控件Ehlib 编译报错的处理 delphi控件Ehlib.v4.2.16 编译报错的处理办法。 在 ...

网友评论

      本文标题:pdfjs-dist编译报错

      本文链接:https://www.haomeiwen.com/subject/qshvlltx.html