标签: deno

无法在 Ubuntu 18.04 中安装 Deno

我正在尝试在我的 Ubuntu 机器上安装 Deno,但我不能。Ubuntu 版本是 18.04。

我正在使用这个命令:

curl -fsSL https://deno.land/x/install/install.sh | sh 
Run Code Online (Sandbox Code Playgroud)

它由 Deno 的官方页面提供。安装 Deno 后,我在.bash_profile.

export DENO_INSTALL="/home/azmul/.local"
export PATH="$DENO_INSTALL/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

执行此操作后,当我尝试在终端上运行deno命令时。我总是发现 在我的终端上找不到“deno”。我不知道我该怎么办。如果有人对此有好的声音,请给我一个答案。

ubuntu ubuntu-18.04 deno

2
推荐指数
2
解决办法
1216
查看次数

在使用 TypeScript 编写时如何查看 Deno 转译的 javascript?

我正在使用 Deno 学习 Typescript,并希望看到 JavaScript 结果。是否有一些我在文档中没有看到的命令行?

ps.:我知道使用 Deno 没有编译步骤,但在某些时候它必须有 Javascript 代码,以便 V8 引擎可以运行它。

javascript typescript deno

2
推荐指数
1
解决办法
564
查看次数

sh: 39: unzip: 安装 deno 时未找到

sh: 39: unzip: not found我在 Windows Subsystem For Linux(WSL) 上安装 Deno 时收到以下错误。

windows-subsystem-for-linux deno

2
推荐指数
1
解决办法
1303
查看次数

Deno REPL 无法识别 TypeScript 变量声明

我使用 Chocolatey 在 Windows 10 上安装了 Deno 1.0.5。我尝试在 Deno REPL 中使用 Typescript,但显然如果设置了类型,它就无法识别 TypeScript 变量声明:

 C:\>deno
 Deno 1.0.5
 exit using ctrl+d or close()
 > let x: number;
 Uncaught SyntaxError: Unexpected token ':'
     at evaluate ($deno$/repl.ts:54:34)
     at Object.replLoop ($deno$/repl.ts:156:13)
 > let x: number = 42;
 Uncaught SyntaxError: Unexpected token ':'
     at evaluate ($deno$/repl.ts:54:34)
     at Object.replLoop ($deno$/repl.ts:156:13)
 > let x = 42;
 undefined
 > x
 42
Run Code Online (Sandbox Code Playgroud)

我需要做一些特别的事情来让 Deno CLI 支持 TypeScript 吗?

typescript deno

2
推荐指数
1
解决办法
220
查看次数

使用 Deno 和 Oak 处理多部分/表单数据

我在学习 Deno 和 Oak 方面取得了缓慢但稳定的进展,但这让我感到困惑。我有一个带有文件上传字段的简单网络表单:

<form method="post" action="/quote" enctype="multipart/form-data">
  <label>Author:
  <input type="text" name="author" />
  </label>
  <label>file: <input type="file" name="myfile" multiple />
  </label>
  <label>Quote: 
  <textarea name="quote"></textarea>
  </label>
  <input type="submit" />
  </form>
Run Code Online (Sandbox Code Playgroud)

处理是通过 Deno 和 Oak 完成的,下面是处理文本数据的脚本:

router.post('/quote', async context => {
const body = context.request.body({ type: 'form' })
  const value = await body.value
  const author = value.get('author')
  console.log(author)
  context.response.redirect(`/?author=${author}`)
})
Run Code Online (Sandbox Code Playgroud)

该路由可以处理没有编码的表单multipart/form-data,但一旦我添加该编码,该author字段就是undefined

我的问题是:如何访问此表单中的数据(文本和文件数据)?

javascript forms upload deno oak

2
推荐指数
1
解决办法
2554
查看次数

Deno 导入地图和锁定文件

据我所知,只有在使用包含所有导入的 TypeScript(或 JavaScript)文件时,才能创建 Deno 锁定文件——通常来自deps.ts文件。

我希望能够使用(不稳定的)导入映射并基于它生成锁定文件。

是否可以从import_map.json文件生成该锁定文件?如果不可能,有没有其他方法可以使用deps.ts文件,例如,能够映射依赖项以便导入它们而无需在./..任何地方使用(臭名昭著的)?

此外,看起来pathstsconfig.json文件上使用该功能是行不通的,因为我不知道如何引用其中的任何模块。

deno

2
推荐指数
1
解决办法
252
查看次数

Deno:为 Node.js 内置提供 Polyfill

Deno 是否有办法填充/填充 Node.js 模块?

也就是说,假设我有一个属于 Node.js 项目一部分的打字稿文件,它看起来像这样

import { performance } from 'perf_hooks';

function hello() {
  console.log(performance.performance.timeOrigin)
  console.log("Hello World")
}

export {
  hello
}
Run Code Online (Sandbox Code Playgroud)

我想在 deno 程序中使用这个模块,所以我做了这样的事情

import {hello} from './some-module.ts'

function main() {
  hello()
}
Run Code Online (Sandbox Code Playgroud)

但是,我不能这样做,因为 Deno 中没有perf_hooks模块。

% deno run main.ts 
Check file:///private/tmp/main.ts
error: TS2305 [ERROR]: Module '"deno:///none.d.ts"' has no exported member 'performance'.
import { performance } from 'perf_hooks';
         ~~~~~~~~~~~
    at file:///private/tmp/some-module.ts:1:10
Run Code Online (Sandbox Code Playgroud)

我想编写我自己的版本perf_hooks来实现我需要的属性和方法,然后告诉 Deno Hey - 每当有人想要perf_hook使用我的模块时

Deno 有内置的东西可以让我做到这一点吗?如果没有,Deno 社区是否使用一些常见的实践/捆绑技术来完成此类事情。

javascript polymorphism polyfills deno

2
推荐指数
1
解决办法
610
查看次数

Deno:“不支持经典工人”?

我想创建一个像这样的 Web Worker:

const blob = URL.createObjectURL(new Blob([`
  ...
`], {type: 'text/javascript'}))
const worker = new Worker(blob)
Run Code Online (Sandbox Code Playgroud)

但在 Deno 中这样做时我得到:

error: Uncaught NotSupported: Classic workers are not supported.
    const worker = new Worker(blob)
                   ^
Run Code Online (Sandbox Code Playgroud)

我在谷歌上搜索了这条消息“不支持经典工人”,我发现基本上没有任何解释其背后的历史或具体含义的内容。我发现了一些关于创建工人的特殊 Deno 方式:

error: Uncaught NotSupported: Classic workers are not supported.
    const worker = new Worker(blob)
                   ^
Run Code Online (Sandbox Code Playgroud)

但它似乎不能满足我的需求,因为我特别需要从字符串(或至少从运行时传递的任意函数)动态初始化工作程序。

有什么办法可以在 Deno 中完成我需要做的事情吗?

编辑:我确实设法在文档中找到了此页面(由于某种原因,Deno 的文档在搜索引擎中无法找到结果),尽管这不是一个好兆头,因为听起来没有办法做我需要的事情执行 https://deno.land/manual/runtime/web_platform_apis#web-worker-api

javascript worker typescript deno

2
推荐指数
1
解决办法
706
查看次数

为什么 Deno.run 对某些命令不起作用?

当我在 MacOS 终端中运行时,code .它会在当前文件夹中打开 VSCode。

但是,当我运行deno run --allow-run file.tsfile.ts 如下时,什么也没有发生:

Deno.run({ cmd: ["code", "."] });
Run Code Online (Sandbox Code Playgroud)

我查看了 Deno.run 文档,但找不到任何关于为什么这不起作用的信息。

我运行过的测试:

  • Deno.run({ cmd: ["which", "code"] });输出/usr/local/bin/code(与终端相同)。
  • Deno.run({ cmd: ["type", "code"] });什么也不输出。终端输出code is /usr/local/bin/code

我如何开始弄清楚为什么有些命令有效(which)而其他命令无效(codetype)?

deno

2
推荐指数
1
解决办法
647
查看次数

如何在 vscode 中调试 deno 测试

使用 deno vscode 扩展可以很好地运行测试,但似乎没有调试测试的选项。

请注意,我可以在 vscode 中调试 deno 代码,没有问题。这是调试测试的问题。

visual-studio-code deno

2
推荐指数
1
解决办法
1062
查看次数