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脚本执行的整个流程了。

相关推荐
萑澈5 小时前
Windows 7 运行 Electron 安装包报“不是有效的 Win32 应用程序”怎么办
javascript·windows·electron
W.A委员会5 小时前
JS原型链详解
开发语言·javascript·原型模式
懂懂tty5 小时前
React状态更新流程
前端·react.js
小码哥_常6 小时前
告别繁琐!手把手教你封装超实用Android原生Adapter基类
前端
她说彩礼65万6 小时前
C# 实现简单的日志打印
开发语言·javascript·c#
skywalk81636 小时前
pytest测试的时候这是什么意思?Migrating <class ‘kotti.resources.File‘>
前端·python
一只蝉nahc6 小时前
vue使用iframe内嵌unity模型,并且向模型传递信息,接受信息
前端·vue.js·unity
状元岐7 小时前
C#反射从入门到精通
java·javascript·算法
子兮曰7 小时前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun
2401_885885047 小时前
易语言彩信接口怎么调用?E语言Post实现多媒体数据批量下发
前端