网站首页 > 技术文章 正文
前言
在 vue-cli2或者 vue-cli3 中,当我们创建好一个项目,我们要通过 npm run dev(vue-cli2的命令,vue-cli3之后用npm run serve,原理都一样,只不过是换了一下名字而已)运行一个项目。或者通过 npm run build 打包一个项目。那么问题来了,当我们在命令框中输入这两个命令的时候:
- 这背后到底是做了什么
- 是谁帮我们做的这些事
准备工作
首先我们先来创建一个vue项目,这里需要说明一下,我们也可以不用非得创建一个vue的项目,创建一个文件夹,然后在里面创建几个js文件,也可以。不过我们现在都对vue比较熟悉,我们就以vue项目为例。
好,先来创建一个vue项目,在命令行中输入命令:vue create test-vue
我的vue-cli版本是4.4.6,所以要通过这行命令创建。其它版本的可以查一下官方文档。这里不过多解释。
当创建好之后出现以下提示,说明项目已经创建好了
用vscode打开项目,看一下文件目录:
这是vue-cli这个脚手架工具帮我们创建是默认目录。
这背后到底是做了什么
我们在命令行中输入命令:
npm run serve
看一下运行成功之后的提示信息:
有没有小伙伴想过这样的问题:为什么是运行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服务。
总结:
- 当我们在命令行中输入 npm run xxxx的时候,其实就是执行 package.json文件里的 scripts里的某个命令
- npm run serve命令之后,就是开启了一个服务来运行我们的项目,这是 WebpackDevServer开启的服务
由于篇幅的原因,先介绍这么多,下篇详细介绍。
- 上一篇: vue项目问题集(vue项目常见问题)
- 下一篇: 十款热门的Vue.js工具和库(vue常用库)
猜你喜欢
- 2024-09-18 .net core集成vue(.net core vue 快速开发框架)
- 2024-09-18 找工作利器:何为vue?(vue靠什么赚钱)
- 2024-09-18 我是如何把vue项目启动时间从70s优化到7秒的
- 2024-09-18 在Vue项目里面使用d3.js(vue3 directive)
- 2024-09-18 VUE项目之搭建环境(vuejs环境搭建)
- 2024-09-18 认识 vuejs、vue-cli和webpack(vue.js和vue-cli区别)
- 2024-09-18 JavaScript:ES在Vue中的实战应用(vue/essential)
- 2024-09-18 安装Vue-cli脚手架以及使用命令搭建Vue-cli + webpack项目
- 2024-09-18 nginx环境下vue项目部署二级域名(nginx部署两个vue项目)
- 2024-09-18 用 vite 2 平滑升级 vue 2 + webpack 项目实战
- 1512℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 556℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 505℃MySQL service启动脚本浅析(r12笔记第59天)
- 483℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 482℃启用MySQL查询缓存(mysql8.0查询缓存)
- 462℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 442℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 439℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)