Next.js 14,Tesseract.js 错误:找不到模块.../.next/worker-script/node/index.js'

问题描述 投票:0回答:1

我正在尝试使用 tesseract.js 节点模块从图像中提取文本,我正在使用 nextjs 14。即使我已经安装了 tesseract.js 模块,我也会收到错误,当我尝试提取时,模块找不到:

Error: Cannot find module '...(projectdirectory)/.next/worker-script/node/index.js'
    at Module._resolveFilename (node:internal/modules/cjs/loader:1142:15)
    at Module._load (node:internal/modules/cjs/loader:983:27)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:142:12)
    at MessagePort.<anonymous> (node:internal/main/worker_thread:186:26)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:822:20)
    at MessagePort.<anonymous> (node:internal/per_context/messageport:23:28) {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

它应该查看不在 .next 中的节点模块 因此,我尝试更改文件中worker-sript的路径

const worker = await createWorker('eng',1,{workerPath: "./node_modules/tesseract.js/src/worker-script/node/index.js"});

但是更改路径后会抛出另一个错误:

TypeError: fetch is not a function

我不知道为什么会发生...从我这边来看一切都很好,除了这个..功能之外,我的项目中一切正常

我尝试更改工作模块的路径,这里是代码:

import {createWorker} from 'tesseract.js';

export const imgToText = async () =>{
      //const converter = await createWorker('eng')
      const worker = await createWorker('eng',1,{workerPath: "./node_modules/tesseract.js/src/worker-script/node/index.js"});
      try {
            const img = "/fake.png"
            const text = await worker.recognize(img);
            console.log(text.data.text);
            return text.data.text;
      } catch (error) {
            console.log("image extraction error", error);
            throw error;
      } finally {
            await worker.terminate();
      }
}

我希望这里有图像中的文字。

但是我得到了

fetch is not a function
,所以我尝试安装节点获取模块,但它也不起作用。

谢谢你!

javascript node.js next.js node-modules tesseract.js
1个回答
0
投票

我遇到了同样的问题,我偶然发现了这篇文章,按照第一条评论中的说明进行操作,结果成功了!

尝试修改您的配置以将其标记为外部包。请参阅https://nextjs.org/docs/app/api-reference/next-config-js/serverComponentsExternalPackages 这对于许多 Node.js 库来说是必需的。它改变了代码的转译和打包方式,但我不知道具体细节。

https://www.reddit.com/r/nextjs/comments/18qa0eo/deleted_by_user/

© www.soinside.com 2019 - 2024. All rights reserved.