标签: deno

deno 将 JSON 文件作为模块导入

我有一个导入 json 的简单文件:

主文件

import json from './file.json'
Run Code Online (Sandbox Code Playgroud)

但是 deno 在导入 json 文件时会抛出以下错误:

$ deno run main.ts
Compile file:///home/path/to/project/main.ts
error: Uncaught TypeError: Cannot resolve extension for "file:///home/path/file.json" with mediaType "Json".
    at getExtension ($deno$/compiler.ts:218:13)
    at new SourceFile ($deno$/compiler.ts:263:22)
    at Function.addToCache ($deno$/compiler.ts:339:16)
    at processImports ($deno$/compiler.ts:743:31)
    at async processImports ($deno$/compiler.ts:753:7)
    at async compile ($deno$/compiler.ts:1316:31)
    at async tsCompilerOnMessage ($deno$/compiler.ts:1548:22)
    at async workerMessageRecvCallback ($deno$/runtime_worker.ts:74:9)
Run Code Online (Sandbox Code Playgroud)

文件路径正确且文件是有效的 JSON。默认情况下Typescript 编译器应该允许这样做

我还尝试明确启用resolveJsonModule

配置文件

{
  "compilerOptions": {
    "resolveJsonModule": true
  },
  "include": [
    "**/*"
  ] …
Run Code Online (Sandbox Code Playgroud)

json module deno

11
推荐指数
3
解决办法
2610
查看次数

如何从 Deno 运行任意 shell 命令?

我想从 Deno 运行任何任意的 bash 命令,就像我在 Node.js 中使用的一样child_process。这在 Deno 中可能吗?

deno

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

如何在 Deno 中不使用换行符进行 console.log?

在 Deno 中如何在没有换行符的情况下将新行打印到终端?在node.js中我曾经这样做:

process.stdout.write('hello, deno!')
Run Code Online (Sandbox Code Playgroud)

这在 Deno 中可能吗?Deno 没有该模块,我在https://doc.deno.land/builtin/stableprocess中找不到等效的选项。

node.js deno

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

如何使用 Deno 发出 HTTP 客户端请求

我在玩 Deno,但找不到标准的 HTTP 客户端。

我还用谷歌搜索了“deno http 客户端”,它给了我https://deno.land/x/std/http/client/,但链接已断开。某些内容被 Google 编入索引,后来从 repo 中删除。

404 - Not Found
This file or directory could not be found.
Run Code Online (Sandbox Code Playgroud)

我找到了 3rd 方库soxadeno-http,但我正在寻找标准的东西。

是否有我缺少的 Deno 标准 HTTP 客户端?

deno

10
推荐指数
1
解决办法
2763
查看次数

如何在 Ubuntu 上安装 Deno

我运行的命令是:

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

输出是:

######################################################################## 100.0%
Archive:  /root/.deno/bin/deno.zip
  inflating: deno
Deno was installed successfully to /root/.deno/bin/deno
Manually add the directory to your $HOME/.bash_profile (or similar)
  export DENO_INSTALL="/root/.deno"
  export PATH="$DENO_INSTALL/bin:$PATH"
Run '/root/.deno/bin/deno --help' to get started
Run Code Online (Sandbox Code Playgroud)

在此之后,我deno在终端中运行,它给了我一个错误。

谁能解释一下如何在 Ubuntu 中正确安装 Deno?

ubuntu deno

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

我可以将基于 Node 的项目迁移到 Deno 吗?

您好,我是一名前端开发人员。

首先,我对运行环境不太了解。
是否可以使用 Node 将我的项目转换为 Deno?

即使我更改了所有代码,
我也不确定收到的库是否可以在 Deno 环境中运行。
(太多的库...)(React、Apollo、很多很多)

而且由于当前的 webpack 设置非常复杂且难以理解,(而且我对构建系统知之甚少。)
我不确定这是否可以在 Deno 环境中工作。

在我看来,这似乎不可能,我只会在开发新项目时使用 Deno,或者等待有人创建迁移指南。

你怎么看待这件事?

添加

显然,如果我使用的库没有在 Deno 存储库中注册,这是不可能的。

其次,似乎存在节点兼容性问题。

现在我确信我无法将其转换为 deno。谢谢

javascript node.js webpack package.json deno

10
推荐指数
3
解决办法
5416
查看次数

如何在 deno 中删除运行时导入缓存?

在 node.js 中我们可以使用

delete require.cache[require.resolve(somePath)];
Run Code Online (Sandbox Code Playgroud)

在运行时删除需要缓存。

是否有类似的方法来删除 deno 中的运行时导入缓存?

node.js deno

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

如何在 Deno REPL 中导入模块?

尝试在 Deno REPL 中导入模块会导致以下错误:

Uncaught SyntaxError: Cannot use import statement outside a module
    at evaluate (rt/40_repl.js:60:36)
    at replLoop (rt/40_repl.js:160:15)
Run Code Online (Sandbox Code Playgroud)

我几乎每天都使用 Node REPL 来快速测试代码。无需编写脚本或处理临时文件即可导入外部代码的能力非常方便。

为什么 Deno 不能在模块外使用 import 语句?甚至可以在 Deno REPL 中使用外部代码吗?

deno

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

如何在 deno 中强类型化 Oak 上下文状态对象?

我想在 deno 中强类型化 Oak 提供的 context.state 对象。我已经看到了如何实现这一点的方法(例如Deno Oak v10.5.1 context.cookies never be set),但还没有设法在我自己的代码中实现它。

我的目标是访问每个中间件中的强类型 context.state。

这是 context.state 的接口:

interface State {
    userID: number;
    sessionID: number;
}
Run Code Online (Sandbox Code Playgroud)

这将是我用于设置 context.state 的中间件函数之一,我在其中尝试访问上下文状态属性:

const contextMiddleware = async (context: Context, next: () => Promise<unknown>): Promise<void> => {
    context.state.userID = 123;
    context.state.sessionID = 456;
    await next();
    delete context.state.userID;
    delete context.state.sessionID;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,在 contextMiddleware 函数中,这两个属性的类型为any,而不是预期的数字类型。此外,智能感知无法识别这些自动完成属性。

我发现解决方案可能是将 IState 接口作为泛型传递给调用中间件的 Application 和 Router 对象,然后设置 contextMiddlewate 函数以使用来自 Oak import mod.ts 的相同泛型键入 RouterMiddleware 或 Middleware。

这可能看起来像这样,但目前不起作用:

import {
  Application, …
Run Code Online (Sandbox Code Playgroud)

typescript deno oak

10
推荐指数
1
解决办法
1331
查看次数

如何从 Deno 运行 Python 脚本?

我有一个带有以下代码的python脚本:

print("Hello Deno")
Run Code Online (Sandbox Code Playgroud)

我想使用 Deno 从 test.ts 运行这个 python 脚本(test.py)。到目前为止,这是 test.ts 中的代码:

const cmd = Deno.run({cmd: ["python3", "test.py"]});
Run Code Online (Sandbox Code Playgroud)

如何在 Deno 中获取 python 脚本的输出?

python typescript deno

9
推荐指数
1
解决办法
800
查看次数

标签 统计

deno ×10

node.js ×3

typescript ×2

javascript ×1

json ×1

module ×1

oak ×1

package.json ×1

python ×1

ubuntu ×1

webpack ×1