javascript - 寻求帮助以使 npm/pdfjs-dist 与 Webpack 和 Django 一起工作

标签 javascript django npm webpack pdfjs-dist

我已经尝试了几个小时将基于链接的 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-loaderv2.0.0

关于javascript - 寻求帮助以使 npm/pdfjs-dist 与 Webpack 和 Django 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63553008/

相关文章:

django - 如何使用 Django Postman 建立像 Facebook 这样的后端消息传递系统?

npm - 如何 npm 审核全局包

node.js - 如何卸载 package.json (NPM) 中列出的所有依赖项?

Django 模板标签如果未按预期进行比较

python - 在功能齐全的 django 应用程序中测试 POST 时出现 405 错误

javascript - 如何将 form.serialize 值重复保存到变量中

javascript - jquery获取选中的复选框行并将其传递到ajax中

linux - 我如何知道我当前的 npm 项目链接到哪些其他 npm 项目?

javascript - 在javascript中将对象添加到复杂的json中

javascript - 是否可以创建一个 ES6 Javascript 表达式,其值是具有动态属性名称的对象?