【问题标题】:How to use `serialport` library with `deno`?如何在 `deno` 中使用`serialport` 库?
【发布时间】:2020-06-30 10:39:15
【问题描述】:

在尝试使用 deno 从 arduino 获取读数时,我陷入了正确使用串行端口库的问题。我尝试了以下方法:


根据article 的包来自pika.dev 可以使用。 但我从鼠兔那里得到:
However, no web-optimized "module" entrypoint was found in its package.json manifest.


同样使用jpsm.org 也不起作用:

import * as SerialPort from "https://dev.jspm.io/serialport";

中断:
error: Uncaught TypeError: exists is not a function
可能是因为缺少类型标头,在 npm 中应该可以使用 @types/serialport 但在 pika.dev 或 jspm.io 上不可用。


使用 npm 安装 serialport@types/serialport 并引用它们的本地路径如下,也不是解决方案:

// @deno-types="./node_modules/@types/serialport/index.d.ts"
import * as SerialPort from "https://dev.jspm.io/serialport";

错误是:
error: relative import path "stream" not prefixed with / or ./ or ../ Imported from "file:///home/user/code/deno-serial-test/node_modules/@types/serialport/index.d.ts"

意味着它会抱怨,因为 npm 下载的库依赖项不是相对路径。这意味着我需要更改/修补所有库模块。


我要运行的代码是:

// import * as SerialPort from "https://dev.jspm.io/npm:serialport@9.0.0/lib/index.dew.js";

// @deno-types="./node_modules/@types/serialport/index.d.ts"
import * as SerialPort from "https://dev.jspm.io/serialport";

async function readAvailablePorts() {
    const ports = await SerialPort.list();
    console.log('Available SerialPorts: ', ports);
}

readAvailablePorts();


任何如何解决的想法将不胜感激。

【问题讨论】:

  • 看看see here。我前段时间问过这个问题,但还没有尝试将其付诸实践。让我们知道您是否取得了一些成功。我也想和 Deno 和 Arduino 交流。

标签: typescript npm deno node-serialport


【解决方案1】:

你不能在 Deno 上使用 NPM serialport 包,它严重依赖 Node.js API,包括 stream 尚未被 Node Compatibility Library 填充

根据 pika.dev 的文章,可以使用包。但从 我得到了鼠兔:

您可以使用使用纯 JavaScript 的包,而不是依赖 Node.js API 的包。


如果你想从 Deno 中的 Arduino 获取读数,你必须构建自己的包或等到一个包被写入


您可以阅读更多关于在 Deno 上使用 NPM 模块的信息:How to use npm module in DENO?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-24
    • 2020-09-16
    • 2022-12-24
    • 2020-09-01
    • 2020-10-31
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多