在尝试使用deno来获取arduino的读数时,我陷入了串行端口lib的正确使用问题。我尝试了以下方法:
根据一篇文章,可以使用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:[email protected]/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();
任何想法如何解决将不胜感激。
您不能serialport
在Deno上使用NPM软件包,它在很大程度上依赖于Node.js API,其中包括Node Compatibility Librarystream
尚未对其进行填充的情况。
根据一篇文章,可以使用pika.dev的软件包。但从皮卡我得到:
您可以使用使用纯JavaScript的程序包,而不能使用依赖于Node.js API的程序包。
如果要从Deno中的Arduino获取读数,则必须构建自己的程序包或等到编写一个程序包为止
您可以阅读以下有关在Deno上使用NPM模块的更多信息:如何在DENO中使用npm模块?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句