源码阅读之 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

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


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


目录
相关文章
|
前端开发 JavaScript
react-兄弟-父子组件共享状态-useContext
react-兄弟-父子组件共享状态-useContext
228 0
|
开发者
冷门但好看的 VSCode 主题推荐
笔者在使用VSCode进行开发的过程中喜欢没事就逛一逛插件商店里的颜色主题,也看过国内外许多论坛上面的颜色主题推荐,不知不觉已经下载了超过一百个的颜色主题。这篇文章总结了我用过的最舒服的一些颜色主题。
7709 0
冷门但好看的 VSCode 主题推荐
vite环境引入web worker方法
在 vite 环境中使用 web worker 时,如果遇到生产环境中 worker.js 文件的 MIME 类型被识别为 text/html,导致报错无法运行的情况时,可以参考以下两种方法,原理都是避免编译时产出单独的 worker.js 文件。方法一worker文件不需要包装,引入时后缀增加 ?worker&inline,使用时直接 new ImportedWorker();self.
1641 1
|
Web App开发 iOS开发 开发者
Mac——基于Similator和Safari调试移动端页面
最近在开发移动端,需要在iphone环境下做一些调试,查看下是否有问题,但是手头上没有真机,不过当前主力本换成了`Mac`,所以就可以先用`Simulator`来调试下。
505 8
|
12月前
|
Docker 容器
容器的日志
【10月更文挑战第31天】
518 68
|
9月前
|
Web App开发 存储 开发者
Chrome 插件上架发布全流程指南
浏览器插件开发完以后,要发布到 Chrome Web Store上,也是需要颇费一番周折的,本文就从注册账号开始,一直到最后发布上架的全流程进行指导,希望帮助你提供一些经验,避免踩坑,耗时耗力。
710 8
|
JavaScript C++
使用 Vite 创建 Vue3+TS 项目并整合 ElementPlus、Axios、Pinia、Less、Vue-router 等组件或插件
本文详细介绍了如何使用Vite创建Vue3+TypeScript项目,并整合ElementPlus、Axios、Pinia、Less、Vue-router等组件或插件的步骤和配置方法。
4059 2
|
SQL Oracle Java
一款数据库客户端搞定所有数据库
一款数据库客户端搞定所有数据库
350 0
一款数据库客户端搞定所有数据库
|
移动开发 前端开发 JavaScript
history.pushstate用法详解
history.pushstate用法详解
Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yo
Warning: Don’t paste code into the DevTools Console that you don’t understand or haven’t reviewed yo