源码阅读之 create-vite —— 阅读前的准备工作

简介: 源码阅读之 create-vite —— 阅读前的准备工作

响应组织的号召,正好最近在学习 vite,活动上也正好有一篇关于阅读create-vite的任务,于是就果断的加入了,这里记录一下阅读的过程。

学习任务


  • 源码:create-vite
  • create-vite 不到400行代码;
  • 可以学会如何写一个脚手架等等;
  • 注意:如果克隆的最新的代码(最新的create-vite已升级为 ts),按照我文中的方式不能调试。推荐使用 npx esno src/index.ts调试源码。


初始化环境


跟着上面的链接,克隆下来源码,发现是根据pnpm来管理依赖的,所以需要安装pnpm,怎么安装就不说了,接着就是安装依赖。


然后就是看CONTRIBUTING.md文件了,里面很详细的解释了如何调试源码,但是是基于vscode的,我用的是webstorm,所以我这里就讲一下webstorm的调试方式。


WebStorm 调试


WebStorm调试的方式很简单,不管是.js还是.ts都可以在webstorm中直接调试,不需要额外的配置,因为有内置的TypeScript支持。


由于新版的vite已经升级为ts,我这里就以ts为例。


  1. 可以直接打开.ts,通过鼠标右键选择调试,然后就可以在右侧的行号处打断点了,就可以调试了。

image.png

这种方式调试完成之后,会在webstormEdit Configurations中生成一个Node.js的配置,下次就可以直接选择Node.js来调试了。


但是这种方式不能在package.json"type": "module"下调试,会报错。


  1. 上面的方案是可以快捷生成一个Node.js的配置,也可以手动添加,通过右上角的Edit Configurations

image.png

选择Node.js,然后填写信息就好了:

image.png

  1. 也可以直接在package.json中添加scripts,然后通过npm run来调试。

image.png

点击这个小箭头,也会出现debug的选项,然后就可以进行调试了。


这种方式会生成一个npm的配置,同样也会出现在Edit Configurations中。


  1. 上面的这些方式在create-vite中都不行,所以需要增加一些额外的配置。


我们在package.json中的scripts中添加"debug": "npx esno src/index.ts",然后执行第三步的方式,就可以调试了。


  1. 还有一种可以调试.ts的插件Run Configuration for TypeScript,但是需要安装ts-node,也是在.ts文件中右键选择就好了,上面第一种方式的选项中有。


断点调试


webstorm中,可以在行号处打断点,然后就可以进行调试了。


同时可以在断点处右键,为断点添加条件,这样就可以在满足条件的时候才会进入断点。

image.png

在下方的调试器中,可以看到当前的变量值,也可以在这里修改变量的值。

image.png

这些里面要讲的东西很多,这里就不一一讲解了,有兴趣的可以自己去研究一下,就是各种右键点击,设置值,打印值等等。


今天的分享就到这里了,明天开始正式的源码阅读。


目录
相关文章
|
机器学习/深度学习 算法 Perl
新颖训练方法——用迭代投影算法训练神经网络
本文介绍了一种利用迭代投影算法对神经网络进行训练的方法,首先介绍了交替投影的基础知识,说明投影方法是寻找非凸优化问题解决方案的一种有效方法;之后介绍了差异图的基础知识,将差异图与一些其他算法相结合使得差分映射算法能够收敛于一个好的解决方案;当投影的情况变多时,介绍了分治算法,最后将迭代投影算法应用到神经网络训练中,给出的例子实验结果表明效果不错。
7703 0
|
9月前
|
资源调度 JavaScript Windows
'vue-cli-service' 不是内部或外部命令,也不是可运行的程序问题解决
【5月更文挑战第7天】'vue-cli-service' 不是内部或外部命令,也不是可运行的程序问题解决
12892 3
|
数据采集 搜索推荐 算法
2023做海外SEO靠谱吗
答案是:2023做海外SEO很靠谱!
102 0
|
7月前
|
SQL 关系型数据库 MySQL
PolarDB产品使用问题之想要所有表执行是否需要时间分段执行
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
人工智能 vr&ar
Codeforces Round #327 (Div. 2) B. Rebranding C. Median Smoothing
                              B. Rebranding The name of one small but proud corporation consists of n lowercase English letters.
978 0
|
9月前
|
数据可视化 iOS开发 Docker
命令行上的数据科学第二版:七、探索数据
命令行上的数据科学第二版:七、探索数据
81 0
|
6月前
|
存储 Kubernetes Perl
在K8S中,如何知道Pod的数据存储在哪里?
在K8S中,如何知道Pod的数据存储在哪里?
|
6月前
|
JavaScript C++
使用 Vite 创建 Vue3+TS 项目并整合 ElementPlus、Axios、Pinia、Less、Vue-router 等组件或插件
本文详细介绍了如何使用Vite创建Vue3+TypeScript项目,并整合ElementPlus、Axios、Pinia、Less、Vue-router等组件或插件的步骤和配置方法。
2291 1
|
9月前
|
前端开发 JavaScript IDE
蚂蚁CodeFuse新版发布,前端能力优化,支持安卓开发
蚂蚁百灵研发助手 CodeFuse 插件发布新版,本版本新增支持 Android Studio,并针对 JavaScript、TypeScript 等前端语言优化了模型效果,同时还将输出Token增加到最多 1024 个。目前 CodeFuse 处于邀请测试阶段,欢迎各位开发者前往官网申请资格参与测试。在之前已安装插件的用户需要下载最新版本,才可享受 CodeFuse 插件最新能力。
266 1

热门文章

最新文章