./node_modules/pdfjs-dist/build/pdf.js

时间:2018-06-25 12:26:59

标签: angular

我通过以下方式使用ng2-pdf-viewer

{PdfViewerModule} from 'ng2-pdf-viewer/ng2-pdf-viewer';

自Angular 6起,ng版本显示以下错误,但该应用程序仍在运行。有什么问题,我该如何解决?

  

./ node_modules / pdfjs-dist / build / pdf.js中的警告   找不到模块:错误:无法在'C:\ MyProject \ node_modules \ pdfjs-dist \ build'中解析'zlib'

2 个答案:

答案 0 :(得分:1)

这不是实际的解决方案,但是临时解决方法是,在node_modules中编辑文件始终是一种不好的方法。您可以通过在文件中添加以下代码来消除此警告。

node_modules/pdfjsdist/package.json

在此处添加 zilb:false

browser": {
    "fs": false,
    "http": false,
    "https": false,
    "node-ensure": false,
    "zlib": false
  },

对于此npm,这仍然是Github中的未解决问题

https://github.com/VadimDez/ng2-pdf-viewer/issues/322

答案 1 :(得分:0)

问题

ng2-pdf-viewer 的作者称,该模块具有与 ES (ECMAScript) 不兼容的依赖项 (PDF.js),而是具有 CommonJS 语法。这样做的问题是 CommonJS 模块无法优化和缩小,因为 CommonJS 是一个不打算在网络浏览器中使用的标准(有关 CommonJS 和 ES here 的更多信息)。

因此,在将 PDF.js 更新为 ES 语法之前,仍然没有简单的方法可以解决此警告。

可能的解决方案

在这个 ticket 中,模块的作者指出了一个可以同时使用的 PDF.js ES modulized build,但您必须安装它并在您的 Angular 包配置文件中手动修改依赖项。

您可以忽略警告

有一种方法可以忽略(隐藏)警告,但也许这不是可取的,因为警告是为了提醒您在不久的将来可能会变成问题的问题。要忽略警告,请将 allowedCommonJsDependencies 属性添加到 angular.json

"build": {
    "builder": "@angular-devkit/build-angular:browser",
    "options": {
        "allowedCommonJsDependencies": ["ng2-pdf-viewer"],
    }
}