示例
<!-- index.html -->
<script type="module">
import 'someModule'
</script>
类型错误:解析模块说明符时出错:someModule
未捕获类型错误:未能解析模块说明符"someModule"。相对引用必须以"/"、"./"或"../".开头
Q:
- 是否可以捕获此错误
- 谁发送此错误
上下文
在这种情况下,可以使用服务工作者捕获并解决依赖关系。
<script type="module">
import '/someModule'
</script>
根据错误日志,您没有以正确的方式导入它。
有效的模块说明符必须与以下各项之一匹配:完整的非相对URL。和中一样,当通过新的URL(moduleSpecifier(时,它不会抛出错误。
Starts with /.
Starts with ./.
Starts with ../.
其他说明符保留以供将来使用,例如导入内置模块。
试试这个代码:
<script type="module">
import {someModule} from './someModule.js';
</script>
除非您使用一些非标准的未捕获异常处理程序,如浏览器中的window.onerror
或Node.js中的process.setUncaughtExceptionHandler
,否则您无法捕获该错误
捕获该错误是不可能的,因为import
语句只允许在模块全局范围内的任何块之外。因此,如果您试图将import
包装成try..catch
,它将抛出SyntaxError。
相反,您可以使用动态import()
语法建议,它可以在任何地方调用;并处理其拒绝承诺的行为。