Vue:npm run serve 到底做了什么?

简介: 在 vue-cli2或者 vue-cli3 中,当我们创建好一个项目,我们要通过 npm run dev(vue-cli2的命令,vue-cli3之后用npm run serve,原理都一样,只不过是换了一下名字而已)运行一个项目。或者通过 npm run build 打包一个项目。

前言

vue-cli2或者 vue-cli3 中,当我们创建好一个项目,我们要通过 npm run dev(vue-cli2的命令,vue-cli3之后用npm run serve,原理都一样,只不过是换了一下名字而已)运行一个项目。或者通过 npm run build 打包一个项目。那么问题来了,当我们在命令框中输入这两个命令的时候:

  1. 这背后到底是做了什么
  2. 是谁帮我们做的这些事


准备工作

首先我们先来创建一个vue项目,这里需要说明一下,我们也可以不用非得创建一个vue的项目,创建一个文件夹,然后在里面创建几个js文件,也可以。不过我们现在都对vue比较熟悉,我们就以vue项目为例。

好,先来创建一个vue项目,在命令行中输入命令:vue create test-vue

我的vue-cli版本是4.4.6,所以要通过这行命令创建。其它版本的可以查一下官方文档。这里不过多解释。

当创建好之后出现以下提示,说明项目已经创建好了

用vscode打开项目,看一下文件目录:

4edc953e2c684bbe819ffa954c899c08.png

这是vue-cli这个脚手架工具帮我们创建是默认目录。

这背后到底是做了什么

我们在命令行中输入命令:

npm run serve

看一下运行成功之后的提示信息:

4edc953e2c684bbe819ffa954c899c08.png

有没有小伙伴想过这样的问题:为什么是运行npm run serve命令呢,这些命令在哪里呢,我该怎么记住这些命令。

其实这个命令不需要记这个命令,我们只要记住 npm run就好,当我们创建完项目之后可以看到一个 package.json文件。看一下主要的内容:文件内容过多,我们主要看一下 script标签的内容

{
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  }
}

聪明的小朋友可能已经明白了,会不会我们 npm run serve 就是执行的的第一行吧。其实是对的,当我们输入 npm run 之后,就是相当于运行 vue-cli-service serve 这行指令。这个名称可以改,我们改成 dev 之后,就是 npm run dev。不知小伙伴是否明白了。


是谁帮我们做的这些事

那么又是谁帮我们把项目运行起来的呢?我们继续看:当输入 npm run serve回车执行的时候,npm会在项目的目录下找到 node_modules文件夹下的 .bin目录,把此目录添到系统的path环境变量下,执行完之后再把环境变量下的目录删除。打开这个文件夹可以看到一个文件:vue-cli-service这其实是一个 link 快捷方式,它指向 @
vue/cli-service/bin/vue-cli-service.js
这个文件。

npm run serve 就是在运行这个vue-cli-service.js脚本文件。看一下里面的一些代码:

const Service = require('../lib/Service')
const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())
// ....省略了一些代码
const command = args._[0]
service.run(command, args, rawArgv).catch(err => {
  error(err)
  process.exit(1)
})

这里其实就是开启了一个node服务。

总结:

  1. 当我们在命令行中输入 npm run xxxx的时候,其实就是执行 package.json文件里的 scripts里的某个命令
  2. npm run serve命令之后,就是开启了一个服务来运行我们的项目,这是 WebpackDevServer开启的服务
相关文章
|
2月前
执行npm run dev的时候发生了什么
执行npm run dev的时候发生了什么
326 60
|
30天前
|
JavaScript 安全 测试技术
vue封装组件发布到Npm
【10月更文挑战第17天】
|
2月前
|
JavaScript
使用npm,快速构建第一个vue项目
本文介绍了如何使用npm快速构建第一个Vue项目。步骤包括确保安装了Node.js并且配置了正确的环境变量,创建一个空文件夹并使用VSCode打开,通过VSCode的终端执行`npm init vue@latest`命令以初始化项目,选择默认配置即可。接着安装项目依赖并启动开发服务器,最后通过浏览器访问开发服务器提供的本地地址查看项目运行结果。文章还提供了相关代码和操作截图。
|
2月前
|
缓存 JavaScript 前端开发
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
该文章提供了八种解决Vue项目创建时遇到的`command failed: npm install --loglevel error`错误的方法,包括清理缓存、更换npm源、重新安装Node.js等措施。
8种方法解决vue创建项目报错:command failed: npm install --loglevel error
|
3月前
|
缓存
成功解决:Could not resolve dependency: npm ERR! peer vue@“^3.0.2“ from vuex@4.0.2
这篇文章讨论了在使用npm安装依赖时遇到的一个常见问题,即无法解析依赖导致的"peer dependency"冲突错误。文章提供了几种解决方法,包括清除npm缓存、删除`node_modules`文件夹和`package-lock.json`文件,然后重新尝试安装,以解决版本冲突问题。
|
4月前
|
JavaScript
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
Missing script: “serve“ 若依刚开始启动不了,需要npm下载资料
Missing script: “serve“ 若依刚开始启动不了,需要npm下载资料
|
4月前
|
JavaScript 开发工具
支付系统----微信支付22------初始化Vue项目,npm run serve -- -- port 8888,Vue默认打开是8888的写法
支付系统----微信支付22------初始化Vue项目,npm run serve -- -- port 8888,Vue默认打开是8888的写法
|
1月前
|
缓存 资源调度 JavaScript
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
npx与npm的差异解析,以及包管理器yarn与Node版本管理工具nvm的使用方法详解
32 0
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor
该博客文章提供了解决在使用npm版本7.19.1时出现的"no such file or directory"错误的具体方法,建议通过降级npm到6.14.8版本来解决问题,并确认了该方法可以成功安装node_modules。
2071 verbose node v16.6.0 2072 verbose npm v7.19.1或者 no such file or directory, lstat ‘D:\wor

热门文章

最新文章

相关实验场景

更多
下一篇
无影云桌面