我通过以下方式使用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'
答案 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中的未解决问题
答案 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"],
}
}