捕获错误"模块必须以"/"、"./"或"../"开头"



示例

<!-- index.html -->
<script type="module">
import 'someModule'
</script>

类型错误:解析模块说明符时出错:someModule


未捕获类型错误:未能解析模块说明符"someModule"。相对引用必须以"/"、"./"或"../".开头


Q:

  1. 是否可以捕获此错误
  2. 谁发送此错误

上下文

在这种情况下,可以使用服务工作者捕获并解决依赖关系。

<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()语法建议,它可以在任何地方调用;并处理其拒绝承诺的行为。

相关内容

最新更新