单位表示"/>
调试依赖项以单位表示
Node + NPM在node_modules中安装依赖项,因此,如果要调试依赖项,我可以转到node_modules/some-pkg/some-file.js
并添加调试器语句,控制台日志等。
在Deno中,事情变得更加棘手,因为依赖项是从用户中抽象出来的-它不再是普通的本地JS文件了!例如,如果我有以下代码:
// main.js
import oaClient from '/oa-client';
const { createClient } = oaClient;
createClient();
它将输出堆栈跟踪:
nino@hp:~/learning/deno(master)$ deno run main.js
error: Uncaught TypeError: Cannot read property 'paths' of undefined
for (var path in specs.paths) {
^
at _default (/-/[email protected]/dist=es2019/oa-client.js:428:26)
at file:///home/nino/learning/deno/main.js:3:1
尽管我可以在/-/[email protected]/dist=es2019/oa-client.js在线阅读代码,但不能插入控制台日志或调试器语句。
由于deno info <the URL above>
,我可以获取依赖项的缓存副本的本地路径,但我认为用~/.cache/deno
编辑文件不是正确的方法。
所以,Deno调试依赖项的方法是什么?
回答如下:这将允许您在依赖项上设置断点,但是这些断点将被转换为JavaScript。在this example中,它的工作方式有所不同。将DENO_DIR
设置为项目的根目录:
export DENO_DIR=$PWD
运行脚本。
deno run --allow-net app.ts
app.ts在此示例中,将在此处创建
import { serve } from "https://deno.land/std/http/server.ts"; const s = serve({ port: 8000 }); console.log("http://localhost:8000/"); for await (const req of s) { req.respond({ body: "Hello World\n" }); }
http
lib的依赖文件:$DENO_DIR/gen/https/deno.land/std/http/server.ts.js`
您现在可以使用VS Code创建断点。
如果您需要在VS Code上为Deno配置调试,请在此处遵循我的其他答案:
https://stackoverflow/a/61856774/3231778
更多推荐
调试依赖项以单位表示
发布评论