npm run dev之后发生了什么事

学前端的都知道,我们平时执行脚本命令的时候都会在package.json文件中配置一个scripts命令,比如下面的:

javascript 复制代码
{
  "scripts": {
    "dev": "vite"
  },
}

当我们运行 npm run dev 的时候,就会执行vite的这个命令,那么这个命令是如何执行的?我们去vite的源码文件中去一探究竟。

打开vite的源码。找到packages/vite/package.json这个文件,在这个文件中,有个bin: 在bin下面,vite命令指向了bin/vite.js,也就是说,当会去执行这个文件里面的js。那我们继续打开这个文件看看它里面是做了什么事情。 首先印入眼帘的第一行代码:

javascript 复制代码
#!/usr/bin/env node

这句话是什么意思呢?

#! 在Linux或者Unix它叫shebang ,中文版发音(谁罢),起到标识的作用,说明这个文件可以当做脚本来运行。

/usr/bin/env 代表了绝对地址

node 代表了需要使用的执行器类型

总结一下,就是vite.js这个文件被当成了脚本文件来执行,执行器指定为node,如果你电脑的本地环境变量中有node,就会去按照node的语法解析去执行这个文件。

我们接着继续往下看。在文件执行的时候会调用一个start函数:

javascript 复制代码
function start() {
  return import('../dist/node/cli.js')
}

这个start函数会加载dist/node/cli.js文件,继续深入看里面的cli.js文件中。 上图中的很多cli就是我们在项目中配置的scritps脚本命令。这个cli方法是从cac这个npm包来。cac是一个用于构建 CLI 应用程序的 JavaScript 库。 在dev环境下,执行了vite就相当于执行了下面的命令,我们可以看到vite和vite dev其实一样的效果,都会执行这里的逻辑,然后创建一个本地服务器环境,来启动项目。 以上就是当我们执行了npm run dev以后,scripts脚本执行的整个流程了。

相关推荐
刀法如飞1 分钟前
TypeScript 数组去重的 20 种实现方式,哪一种你还不知道?
前端·javascript·算法
IT_陈寒9 分钟前
Vite热更新失效?你可能漏了这个小细节
前端·人工智能·后端
海石13 分钟前
面试官:说一下你现在使用的 AI IDE,什么,JoyCode 是什么?
前端·ai编程
彩票管理中心秘书长40 分钟前
一次搞懂:在Vue里用Showdown渲染Markdown+KaTeX数学公式
前端
m0_7381207244 分钟前
应急响应(重点)——记一次某公司流量应急溯源分析(附带下载链接)
服务器·前端·数据库·安全·web安全·网络安全
前端Hardy1 小时前
pnpm 11.0 正式登场:安装起飞、安全拉满、彻底告别 npm 依赖
前端
PILIPALAPENG1 小时前
第4周 Day 1:智能体记忆系统——给 Agent 一个"大脑"
前端·人工智能·python
_风满楼1 小时前
TDD实战-会议室冲突检测的红绿重构循环
前端·javascript·算法
Rkgua1 小时前
JS中的惰性函数基本介绍
前端·javascript
客场消音器1 小时前
我用两周半 Vibe Coding 做了一个前额叶训练的微信小程序
前端·javascript·后端