我正在使用 TypeScript 开发带有 Turbopack 的 Next.js 15.0.2 项目,并且我正在集成 Stockfish 国际象棋引擎以在客户端创建 Web Worker。
Stockfish库存储在
public
文件夹中,客户端获取它并使用以下代码创建Worker:
const stockfishPath = '/stockfish/stockfish-nnue-16-single.js';
const createStockfishWorker = () => {
try {
const worker = new Worker(stockfishPath);
return worker;
} catch (error) {
throw Error(`Initialize stockfish worker failed: ${error}`);
}
};
export default createStockfishWorker;
Stockfish 库在客户端中加载并完美运行。但是,当我运行该项目时,我在控制台中收到以下 TypeScript 错误:
GET /analysis/w 200 in 2089ms
⚠ ./src/services/stockfish/createStockfishWorker.ts:7:20
error TP1001 new Worker("/stockfish/stockfish-nnue-16-single.js") is not statically analysable
5 | const createStockfishWorker = () => {
6 | try {
> 7 | const worker = new Worker(stockfishPath);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
8 | postMessage(['uci'], worker);
9 | return worker;
10 | } catch (error) {
TP1001
似乎是 TypeScript 抱怨 new Worker("/stockfish/stockfish-nnue-16-single.js")
不可静态分析。// @ts-ignore
来抑制错误,但似乎没有解决问题。public
文件夹任何帮助或建议将不胜感激!
我在使用带有 Turbopack 的 Next.js 15 时遇到了同样的问题,禁用 Turbopack 为我解决了这个问题。
也许一些或所有工人不使用涡轮机组(我不确定)
package.json
{
"scripts": {
"dev": "next dev" // remove --turbopack option
}
}