HarmonyOS 鸿蒙Next中api9 worker文件后缀问题
HarmonyOS 鸿蒙Next中api9 worker文件后缀问题 api版本:9
deveco studio版本:3.1.1 release
wokers文件路径:D:\harmony_workspace\Test\entry\src\main\ets\workers\SocketWorker.ets
build-profile.json5文件内容:
{
"apiType": 'stageMode',
"buildOption": {
"sourceOption": {
"workers": [
"./src/main/ets/workers/SocketWorker.ets"
]
}
},
"targets": [
{
"name": "default",
"runtimeOS": "HarmonyOS"
},
{
"name": "ohosTest",
}
]
}
编译报错:
hvigor ERROR: Failed :entry:default@CompileArkTS…
hvigor ERROR: ENOENT: no such file or directory, stat ‘D:\harmony_workspace\Test\entry\src\main\ets\workers\SocketWorker.ets.ts’
COMPILE RESULT:FAIL {ERROR:1}
hvigor ERROR: BUILD FAILED in 2 s 606 ms
编译报错里的文件名是SocketWorker.ets.ts,实际应该是SocketWorker.ets
更多关于HarmonyOS 鸿蒙Next中api9 worker文件后缀问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
将错就错,把文件名改为 SocketWorker.ets.ts 可以了。。
build-profile.json5 中 workers 路径是 "./src/main/ets/workers/SocketWorker.ets.ts"
使用:
new worker.ThreadWorker("entry/ets/workers/SocketWorker.ets.ts")
更多关于HarmonyOS 鸿蒙Next中api9 worker文件后缀问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
楼主把build-profile.json5路径修改一下:
"buildOption": {
"sourceOption": {
"workers": [
"./entry/src/main/ets/workers/SocketWorker.ets"
]
}
}
避免Hvigor工具自动追加.ts后缀。
工程结构路径改为:
entry/ets/workers/SocketWorker.ets
Worker文件使用.ets扩展名时,配置路径不需要手动添加后缀,这里也改一下:
//无需后缀
new worker.ThreadWorker('entry/ets/workers/SocketWorker')
Hvigor会根据文件类型自动处理后缀,手动添加会导致重复后缀。
build-profile.json5路径是"./src/main/ets/workers/SocketWorker.ets"
,ide实时检查,用"./entry/src/main/ets/workers/SocketWorker.ets"
会提示无效路径
工程路径现在是entry/src/main/ets/workers/SocketWorker.ets,你写的工程路径没有 src/main ?
使用你给的去除后缀的 new worker.ThreadWorker(‘entry/ets/workers/SocketWorker’),依然报错: Could not resolve entry module “entry/src/main/ets/workers/SocketWorker.ets.ts”.
你看看是否文件名包含了ets,而实际文件的扩展名是ts,你在资源管理器里面设置下,让显示下文件扩展名看看
学习了
建议将这个文件删除重新创建试试
鸿蒙Next中API9的Worker文件后缀为.ets。该文件用于定义Worker线程逻辑,通过主线程的new Worker()
接口加载。Worker文件需独立放置于项目目录的ets/workers
路径下,编译时会被打包为单独的JS Bundle。Worker线程与主线程通过postMessage()
和onmessage()
进行通信,支持结构化克隆算法传输数据。文件后缀规范是鸿蒙分布式任务调度的基础要求,确保线程隔离与资源正确分配。
编译错误显示系统在查找.ets.ts
文件,这是由于在API 9中Worker文件的配置方式发生了变化。请将build-profile.json5
中的路径修改为:
"workers": [
"./src/main/ets/workers/SocketWorker"
]
移除文件后缀.ets
,系统在编译时会自动识别并处理ETS文件。这一调整符合HarmonyOS Next的编译规则,可解决文件路径解析异常的问题。