如何将 serialport 库与 deno 一起使用?

How to use `serialport` library with `deno`?

在尝试使用 deno 从 arduino 获取读数时,我被困在正确使用 serialport lib 上。我尝试了以下方法:


照着article packages from 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
可能是因为缺少类型 headers 应该作为 @types/serialport 在 npm 中可用,但在 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 下载的库依赖项不是相对路径。这意味着我需要 change/patch 所有库模块。


我正在尝试 运行 的代码是:

// 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();


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

你不能在 Deno 上使用 NPM serialport 包,它严重依赖 Node.js API,包括 stream 还没有被 Node Compatibility Library

according to an article packages from pika.dev can be used. but from pika i get:

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


如果您想在 Deno 中从 Arduino 获得读数,则必须构建自己的软件包或等到编写了一个软件包


您可以阅读更多关于在 Deno 上使用 NPM 模块的信息: