0-1开发自己的obsidian plugin DAY 3

磨刀不误砍柴工

随着模块变多肉眼看不出问题了 于是先来解决一下debug配置的问题

之前只用过python的debug不知道typescript怎么搞,原来需要另外设置node.js的模式

主要参考的是:

https://www.youtube.com/watch?v=f3i9b3uK00U

预感踩坑开始,所以先新建了一个目录来实验一下,

新建一个src/main.ts放在上述目录下

然后cd到该目录运行:

npm install --save-dev ts-node tsconfig-paths

  • npm是 Node.js 的包管理器

  • ts-node是一个能让你(无需编译)直接运行.ts的执行器,

  • tsconfig-paths帮助Node.js理解typescript项目中的(类似src/ * 这样)的路径别名

这段代码运行以后可以看到*/node_modules/里生成了这两个对应的文件夹。

另外在项目目录下新建一个tsconfig.json,直接粘贴下面的内容。

bash 复制代码
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"sourceMap": true // 开启 source map
}
}

这一步的目的是让断点和调试信息通过 sourceMap 文件映射回 TypeScript 文件

也就是说 ts-node 不显式生成 .js 文件,它会在后台动态编译你的 TypeScript 文件,是在开发阶段的一种调试。

最后就是回到vs code界面点那个侧边栏那个debug icon -> create a launch.json file -> node.js,打开配置launch.json, 粘贴下面内容:

bash 复制代码
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "request": "launch",
            "name": "debug Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}/src/main.ts",
            "runtimeArgs": ["-r", "ts-node/register","-r","tsconfig-paths/register"],
            "console":"integratedTerminal",
            "outFiles": [
                "${workspaceFolder}/**/*.js"
            ]
        }
    ]
}

这里的:

  • -r 是require的意思,表示在启动node.js前先加载(require)一个模块
  • 后面的参数就是前面生成的两个文件夹
  • console的配置使得能在vs code的终端看到的debug信息

最最后在代码里加断点,测试就可以看到成功了。

相关推荐
退休倒计时2 小时前
【每日一题】LeetCode 437. 路径总和 III TypeScript
算法·leetcode·typescript
柯克七七8 小时前
给老项目加了 TypeScript,本来只想自己爽,结果全公司代码审查标准被我抬高了
前端·vue.js·typescript
子兮曰1 天前
TypeScript 7.0 RC 深度解读:Go 重写完成,10 倍提速,编译器的「奇点时刻」
前端·后端·typescript
BAIGAOa1 天前
不止 React:我开源了一个框架无关的终端键盘引擎,Vue/Svelte 都能用
typescript
小蚂蚁i1 天前
把 TypeScript 内置工具类型彻底搞懂,顺便自己封几个好用的
前端·typescript
爸爸6191 天前
07 ArkTS 基础类型与接口定义:从 TypeScript 到鸿蒙的类型升级
javascript·华为·typescript·harmonyos·鸿蒙系统
妙码生花2 天前
从 PHP 到 AI + Golang,程序员自救转型手记(二十六):icon 组件封装
前端·vue.js·typescript
PBitW2 天前
为什么vite中TS报错,可以继续运行?Webpack不行?💡
前端·typescript
敖行客 Allthinker2 天前
前端调试实战:DevTools调试工具 + 二分定位Bug法全总结
前端·typescript·chrome devtools
不瘦80斤不改名2 天前
HalfCart:基于LBS的1\.5km本地拼单系统全栈实践与踩坑复盘
python·docker·typescript·pycharm