Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript deno中的调试依赖项_Javascript_Node.js_Npm_Node Modules_Deno - Fatal编程技术网

Javascript deno中的调试依赖项

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+NPM在Node_模块中安装依赖项,因此如果我想调试依赖项,我可以转到
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我明白了,它有帮助吗,或者您仍然无法调试依赖项?