【问题标题】:Deno oak error: Uncaught AssertionError: Unexpected skip of the emitDeno Oak 错误:未捕获的 AssertionError:意外跳过发射
【发布时间】:2020-06-05 19:42:19
【问题描述】:

尝试在我的以下服务器上运行简单的 Deno Js OAK 中间件服务器时出现错误:

Ubuntu 18.04, 
Deno 1.0.4, 
v8 8.4.300, 
typescript 3.9.2 

通过运行deno run index.js 或运行deno run -A index.js

$ deno run index.js
Compile file:///home/some/tst/index.js
error: Uncaught AssertionError: Unexpected skip of the emit.
    at Object.assert ($deno$/util.ts:33:11)
    at compile ($deno$/compiler.ts:1170:7)
    at tsCompilerOnMessage ($deno$/compiler.ts:1338:22)
    at workerMessageRecvCallback ($deno$/runtime_worker.ts:72:33)
    at file:///home/some/dcode/tst/__anonymous__:1:1

这是我的 index.js 文件代码:

import { Application } from "https://deno.land/x/oak/mod.ts";

const app = new Application();

app.use((ctx) => {
  ctx.response.body = "Hello World!";
});

await app.listen({ port: 8000 });

【问题讨论】:

  • 仅供参考:Deno 已经使用了 deno 标签,创建 denojs 并没有添加任何内容。
  • 谢谢@NikitaMadeev 我已经检查过了。

标签: javascript deno oak


【解决方案1】:

将文件类型从 .js 更改为 .ts。

我在 Deno 的入门部分向我介绍了“复杂程序”,但在将文件类型从 javascript 更改为 typescript 之前,我无法运行该程序。希望对你有所帮助!

【讨论】:

  • 非常感谢我刚刚将我的 index.js 重命名为 .ts 并且它正在运行!
【解决方案2】:

这是v1.0.3v1.0.4 中引入的问题:https://github.com/denoland/deno/issues/6082,它仍在1.0.5 中发生

在修复之前,解决方案是将 Deno 降级到 1.0.0 并使用 Oak 4.0.0,这是该 Deno 版本的合适 Oak 版本。

import { Application } from 'https://deno.land/x/oak@v4.0.0/mod.ts'

要降级 Deno,你可以这样做 following:

curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.0.0

或者如果您使用的是 Windows:

$v="1.0.0"; iwr https://deno.land/x/install/install.ps1 -useb | iex

【讨论】:

  • 您的答案是解决方案。我不得不降级并测试 v1.0.1、v1.0.2、v1.0.3、v1.0.4、v1.0.5 的所有版本,它适用的最新版本是 v1.0.3 和 Oak@v4.0.0。谢谢!注意:我使用 deno 版本管理器安装了所有这些版本 github.com/axetroy/dvm
猜你喜欢
  • 2021-11-28
  • 1970-01-01
  • 2020-09-29
  • 2014-05-27
  • 1970-01-01
  • 2014-02-09
  • 2011-04-07
  • 1970-01-01
  • 2020-08-09
相关资源
最近更新 更多