Javascript deno中的调试依赖项
Node+NPM在Node_模块中安装依赖项,因此如果我想调试依赖项,我可以转到Javascript deno中的调试依赖项,javascript,node.js,npm,node-modules,deno,Javascript,Node.js,Npm,Node Modules,Deno,Node+NPM在Node_模块中安装依赖项,因此如果我想调试依赖项,我可以转到Node_模块/some pkg/some file.js并添加调试器语句、控制台日志等 在Deno中,事情变得更加棘手,因为依赖项是从用户抽象出来的——不再是简单的本地JS文件了!例如,如果我有以下代码: //main.js 从导入oaClient'https://cdn.pika.dev/oa-client'; const{createClient}=oaClient; createClient(); 它将输出
Node_模块/some pkg/some file.js
并添加调试器语句、控制台日志等
在Deno中,事情变得更加棘手,因为依赖项是从用户抽象出来的——不再是简单的本地JS文件了!例如,如果我有以下代码:
//main.js
从导入oaClient'https://cdn.pika.dev/oa-client';
const{createClient}=oaClient;
createClient();
它将输出stacktrace:
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 (https://cdn.pika.dev/-/oa-client@v0.7.1-hYTMbsju6JnnnXlCWvdN/dist=es2019/oa-client.js:428:26)
at file:///home/nino/learning/deno/main.js:3:1
虽然我可以在线阅读代码,但我不能插入控制台日志或调试器语句
多亏了deno info
我可以获得依赖项的缓存副本的本地路径,但我认为在~/.cache/deno
中编辑文件不是正确的方法
那么,Deno调试依赖项的方法是什么呢?您可以试试
修改全局缓存依赖项(这将影响所有项目)的另一种方法是使用环境变量
$DENO\u DIR
在项目目录中下载包
DENO_DIR=$PWD/modules deno run main.js
现在,您可以在不影响其他项目的情况下修改$DENO_DIR/deps
中的内容,完成后,您可以使用:--reload
再次下载所有依赖项
要查找文件名,只需执行以下操作:
DENO_DIR=$PWD/modules deno info {package-url}
我找到了一种方法,使用
$DENO_DIR
变量,您的依赖项将与项目一起下载
这将允许您在依赖项上设置断点,但它们正在转换为JavaScript。它在不同的环境中起着不同的作用
将DENO_DIR
设置为项目根目录:
export DENO_DIR=$PWD
运行脚本
deno运行--允许net app.ts
应用程序ts
从导入{serve}”https://deno.land/std/http/server.ts";
const s=服务({port:8000});
控制台日志(“http://localhost:8000/");
等待(常数要求){
请求响应({body:“Hello World\n”});
}
在本例中,http
lib的依赖项文件将在此处创建:
$DENO_DIR/gen/https/DENO.land/std/http/server.ts.js`
现在可以使用VS代码创建断点
如果您需要为Deno配置VS代码上的调试,请按照我的其他回答进行操作:
很好,谢谢!请注意,它适用于您的示例,但在问题代码(完整JS)的情况下,gen dir保持为空,因为不需要编译步骤。@NinoFiliu我明白了,它有帮助吗,或者您仍然无法调试依赖项?