Tesseract.js示例返回Uncaught TypeError:Tesseract.TesseractWorker不是构造函数

时间:2019-07-12 17:05:52

标签: javascript tesseract

我从https://github.com/naptha/tesseract.js下载了tesseract.js库,示例代码basic.html对我不起作用,我在控制台上收到此错误: 未捕获的TypeError:Tesseract.TesseractWorker不是构造函数

我进行了更改,以修复由于某些原因而出现的“找不到文件”错误:

<script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'></script>

代替

<script src="/dist/tesseract.dev.js"></script>

但是我感觉好像缺少依赖项

这是basic.html代码:

<script src='https://cdn.rawgit.com/naptha/tesseract.js/1.0.10/dist/tesseract.js'></script>
<input type="file" onchange="const worker = new Tesseract.TesseractWorker({ corePath: '../../node_modules/tesseract.js-core/tesseract-core.wasm.js' });worker.recognize(this.files[0]).progress(function(data){console.log(data)}).then(function(data){console.log(data)})">

Uncaught TypeError: Tesseract.TesseractWorker is not a constructor

2 个答案:

答案 0 :(得分:0)

当您抛出此错误时,我了解您在html部分中的工作。但是我几乎可以肯定,当您尝试使用以下方式创建构造函数时,此错误是由于使用已贬值的TesseractWorker造成的:

const { TesseractWorker } = require("tesseract.js");
const worker = new TesseractWorker();

TesseractWorker在较新版本的tesseract.js和tesseract.js-core中已弃用,因此您必须改用createWorker()。

const { createWorker } = require("tesseract.js");
const worker = new createWorker({
  logger: m => console.log(m),
});

这应该纠正详细说明TesseractWorker不是构造函数的错误,具体取决于您是否拥有tesseract.js的2.0+版本,然后随着TesseractWorker的贬值,您将被迫使用createWorker。

答案 1 :(得分:0)

可以使用,
const createWorker = require("tesseract.js");

而不是
const { TesseractWorker } = require("tesseract.js");
const worker = new TesseractWorker();