我已经尝试了几个小时将基于链接的 pdf.js 替换为 npm 安装 pdfjs-dist
,因为我注意到我的链接不打算用作 cdn 并且可能会变得不稳定,因为 described here .
除了几个示例之外,我找不到太多关于如何使其工作的文档,当涉及 Webpack 时,它们主要使用 React,而我只是在 Django 框架中使用 ES6(在所需的 django 目录上静态编译,不使用webpack 插件。)
之后exchanging several messages与从事 pdf.js 工作的人之一看来,我的编译错误可能是由于 Webpack 在内部处理库的方式造成的。这是我所看到的:
WARNING in ./node_modules/worker-loader/dist/index.js
Module not found: Error: Can't resolve 'webpack/lib/web/FetchCompileAsyncWasmPlugin' in '/home/giampaolo/dev/KJ_import/KJ-JS/node_modules/worker-loader/dist'
@ ./node_modules/worker-loader/dist/index.js
@ ./node_modules/worker-loader/dist/cjs.js
@ ./node_modules/pdfjs-dist/webpack.js
@ ./src/js/views/pdfViews.js
@ ./src/js/index.js
WARNING in ./node_modules/worker-loader/dist/index.js
Module not found: Error: Can't resolve 'webpack/lib/web/FetchCompileWasmPlugin' in '/home/giampaolo/dev/KJ_import/KJ-JS/node_modules/worker-loader/dist'
@ ./node_modules/worker-loader/dist/index.js
@ ./node_modules/worker-loader/dist/cjs.js
@ ./node_modules/pdfjs-dist/webpack.js
@ ./src/js/views/pdfViews.js
@ ./src/js/index.js
ERROR in (webpack)/lib/node/NodeTargetPlugin.js
Module not found: Error: Can't resolve 'module' in '/home/giampaolo/dev/KJ_import/KJ-JS/node_modules/webpack/lib/node'
@ (webpack)/lib/node/NodeTargetPlugin.js 11:1-18
@ ./node_modules/worker-loader/dist/index.js
@ ./node_modules/worker-loader/dist/cjs.js
@ ./node_modules/pdfjs-dist/webpack.js
@ ./src/js/views/pdfViews.js
@ ./src/js/index.js
Child HtmlWebpackCompiler:
1 asset
Entrypoint HtmlWebpackPlugin_0 = __child-HtmlWebpackPlugin_0
[./node_modules/html-webpack-plugin/lib/loader.js!./src/src-select.html] 4.57 KiB {HtmlWebpackPlugin_0} [built]
Child worker-loader node_modules/pdfjs-dist/build/pdf.worker.js:
Asset Size Chunks Chunk Names
index.worker.js 1.33 MiB pdf.worker [emitted] pdf.worker
Entrypoint pdf.worker = index.worker.js
[./node_modules/pdfjs-dist/build/pdf.worker.js] 1.25 MiB {pdf.worker} [built]
[./node_modules/process/browser.js] 5.29 KiB {pdf.worker} [built]
ℹ 「wdm」: Failed to compile.
理论上pdfjs-dist
应该带有一个零配置文件,甚至不需要为它设置一个 worker ,所以像下面这样的代码应该可以工作:import pdfjsLib from 'pdfjs-dist/webpack'
////////////////////////////////////////////
//// instantiate pdf
export const pdfView = () => {
// pdfjsLib.GlobalWorkerOptions.workerSrc = 'index.worker.js';
// var defined through a Django template tag
const loadingTask = pdfjsLib.getDocument(pdfData.myPdfDoc)
pdfData.myPdf = loadingTask.promise.then(pdf => {
pdfData.pdfTotalPageN = pdf.numPages;
return pdf;
})
}
但它没有被编译,我真的很感激一些指针。提前致谢
最佳答案
这个问题似乎是由于 esModule
worker-loader@3.0.0
中引入的选项.
fix for this was merged在 (pre-release) pdjs-dist@2.6.347
您可以通过升级 pdfjs-dist
来解决此问题。至v2.6.347
或降级 worker-loader
至v2.0.0
关于javascript - 寻求帮助以使 npm/pdfjs-dist 与 Webpack 和 Django 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63553008/