Vue安装过程的困惑解答——nodejs和vue关系、webpack、vue-cli、vue的项目结构
文章目录
- 1、为什么在使用vue前要下载nodejs?
- 2、为什么安装nodejs后就能使用NPM包管理工具?
- 3、为什么是V8引擎并且使用C++实现?
- 4、为什么会安装淘宝镜像?
- 5、什么是webpack模板?
- 6、什么是脚手架 vue-cli?
- 6.1 安装 Vue 3+版本 的 vue/cli
- 6.2 vue create 创建Vue3应用项目
- 6.2 vue build 打包
- 7、通过vue-cli结合Webpack创建应用
- 7.1 vue init 创建Vue2应用项目
- 8、vue项目的目录解释
- 9、package.json和package-lock.json对依赖包的版本控制
本文知识来源于《Vue.js+Node.js全站开发实战》,书籍下载地址:https://zlibrary-east.se/book/18202286/fed194(2023.8.31更新)
1、为什么在使用vue前要下载nodejs?
相信大家都看过下面的Vue安装教程,首先第一步都是安装nodejs,那么为什么要下载nodejs?https://blog.csdn.net/m0_57545353/article/details/124366678
——因为Node.js是JavaScript的运行时环境
Node.js是一个基于Google Chrome V8引擎设计实现的、
跨平台兼容的、可以运行在服务器端的脚本开发语言。例如,大多数读者耳熟能详的Angular、React和Vue.js这三大渐进式前端开发框架,均与Node.js有着密不可分的关联关系。
这里解释一下服务端:一般的JavaScript脚本语言需要在浏览器环境下才可以解释执行。而Node.js是服务器端的脚本语言,可以直接在后端解释执行。
Node.js组织架构如下:

2、为什么安装nodejs后就能使用NPM包管理工具?
Node.js发展初期的核心用户Isaac Z. Schlueter开发出奠定了Node.js如今地位的重要工具——NPM包管理工具。
之后Connect、Express、Socket.io等库的出现吸引了一大批爱好者加入到Node.js开发者的阵营中来。CoffeeScript的出现更是让不少Ruby和Python开发者找到了学习的理由。其间一大波以Node.js作为运行环境的CLI工具涌现,其中不乏用于加速前端开发的优秀工具,如Babel、Less、Sass、UglifyJS、Browserify、Grunt、Gulp等。
随着ECMAScript 6的发展和最终定稿,Node.js之父RyanDahl退出Node.js的核心开发,转而做其他的研究项目。Ryan Dahl的接任者Isaac Schlueter负责将Node.js一直开发下去并进行不断完善。
3、为什么是V8引擎并且使用C++实现?
选择C++和V8,而不是Ruby或者其他的虚拟机。Node.js在设计上以单进程、单线程模式运行。事件驱动机制是Node.js通过内部单线程高效率地维护事件循环队列来实现的,没有多线程的资源占用和上下文切换。这意味着面对大规模的HTTP请求,Node.js是凭借事件驱动来完成的。
例:
实时互动交互比较多的社交网站,像Twitter这样的公司,它必须接收tweets并将其写入数据库。实际上,每秒几乎有数千条tweet达到,数据库不可能及时处理高峰时段所需的写入数量。Node成为这个问题解决方案的重要一环。Node能处理数万条入站tweet。它能快速而又轻松地将它们写入一个内存排队机制(例如memcached),另一个单独进程可以从那里将它们写入数据库。Node能处理每个连接而不会阻塞通道,从而能够捕获尽可能多的tweets。
4、为什么会安装淘宝镜像?
国内的淘宝为Node.js搭建了国内的NPM(npmjs.org)镜像网站,可以用此代替官方版本,同步频率为每10分钟一次,以保证尽量与官方服务同步,方便国内的开发者下载各种开发包,这就是为什么需要配置Node.js淘宝镜像加速器。
npm config set registry https://registry.npm.taobao.org
5、什么是webpack模板?
Webpack模块打包器作为构建Node应用框架的工具以自动化方式构建Web前端应用,所谓“自动化”方式,其实就是通过一种或几种自动化工具来构建Web前端应用的开发框架,生成后的框架会包含大部分Web前端应用所需的基本类库、第三方插件和支撑配置文件,等等。可以说,这种全新的开发方式将Web前端应用开发提升到了一个全新的高度,并且符合将前后端分离开来进行独立设计的大趋势。
Web前端的自动化构建工具有很多种,其中著名的就是Webpack模块化打包器工具,其也是目前Web前端开发中流行的工具之一。Webpack的功能十分强大,设计了入口(entry)、输出(output)、加载器(loader)和插件(plugins这四个概念,以递归方式构建出一个应用程序主要资源的依赖关系图,并最终完成将JavaScript模块打包成一个或多个“包(bundle)”。
6、什么是脚手架 vue-cli?
所谓“脚手架”就是为了快速搭建应用程序开发框架而设计开发的自动构建工具。在当前各种Web开发框架流行的今天,大部分前端开发工具和框架都设计了自己的“脚手架”工具,而Vue.js框架的脚手架就是vue-cli命令行工具。
6.1 安装 Vue 3+版本 的 vue/cli
npm install -g @vue/cli
安装 Vue 2+版本 的 vue/cli
npm install -g vue/cli
如果想验证一下vue-cli命令行工具是否安装成功了,可以通过“vue-V”命令查看vue-cli命令行工具的版本号来验证。
6.2 vue create 创建Vue3应用项目
ue.js脚手架功能十分强大,通过vue-cli命令行工具的“vue create xxx”命令,可以直接创建Vue.js应用项目,该应用项目会自动生成若干必要的框架文件,以及一个默认的Vue单文件页面。同时,这个默认的Vue单文件页面已经是一个最基本的Vue.js应用了,通过“npm run serve”命令就可以直接运行测试该应用项目。
6.2 vue build 打包
除了通过使用“vue serve”命令直接启动HTTP服务测试Vue.js单页面文件应用的方式,还支持使用“vue build”命令进行打包并测试的方式。将通过生产模式对Vue.js文件进行打包,打包成功后的文件均输出到“dist”目录下。在dist目录中,自动生成了一个index.html页面文件和一组js文件和map文件(js子目录内)。最后,就可以将dist目录中的文件直接部署到服务器中去测试了。
7、通过vue-cli结合Webpack创建应用
通过vue-cli命令行工具还可以结合Webpack工具创建Vue.js项目应用。严格来讲,这其实是Vue 2版本下的操作方式,所结合的Webpack工具其实是Vue.js官方所推荐的模板。
7.1 vue init 创建Vue2应用项目
在Vue 2版本下创建应用项目同样会自动生成若干必要的框架文件,以及一个默认的Vue单文件页面。不过,该项目内生成的文件和目录与Vue3版本下生成的略有不同,对于Vue 2版本下vue-cli命令行工具,就不是通过“vue create”命令创建应用项目了,而是通过“vue init”命令来实现的:
在使用“vue init”命令之前需要先安装该命令扩展工具,具体命令如下:
npm install –g @vue/cli-init
创建一个项目:
vue init webpack your-project-name
其中,webpack是指定的模板名称(webpack是官方推荐的默认模板工具,当然也可以指定其他模板工具)
输入“npm run dev”命令就可以启动运行项目。
输入 “npm run build” 对项目进行打包发布操作。
8、vue项目的目录解释
node_modules目录存放了通过npm命令安装的各种开发包,里面不仅仅是刚刚安装的webpack和webpack_cli开发包,还包括了整个Node生态系统必要的依赖项。

9、package.json和package-lock.json对依赖包的版本控制
package-lock.json文件是在NPM v5版本以后新增加的功能。

但若用户真想升级到最新版本或某个指定版本,则必须在开发包名称后使用“@latest”或“@版本号”来执行指定版本号的升级。
相关文章:
Vue安装过程的困惑解答——nodejs和vue关系、webpack、vue-cli、vue的项目结构
文章目录 1、为什么在使用vue前要下载nodejs?2、为什么安装nodejs后就能使用NPM包管理工具?3、为什么是V8引擎并且使用C实现?4、为什么会安装淘宝镜像?5、什么是webpack模板?6、什么是脚手架 vue-cli?6.1 安…...
PWA ~
vite 安装: pnpm i vite-plugin-pwa -Dvite.config import { VitePWA } from vite-plugin-pwa export default defineConfig({plugins: [VitePWA()] })env.d.ts /// <reference types"vite-plugin-pwa/client" />打包构建:registerSW…...
YII项目在Docker中运行缓慢
缓慢问题分析 请求YII的api时间请求原生查询时间win10 上运行docker上的php api异常慢ubuntu 中拉代码git报错 请求YII的api时间 请求原生查询时间 win10 上运行docker上的php api异常慢 链接阿里数据的 入口直接返回的 网上有说是docker的dns解析慢; 也有说是…...
合宙Air724UG LuatOS-Air LVGL API控件--图表 (Chart)
图表 (Chart) 一幅图胜过一千个字,通过图表展示出的数据内容能让用户更快速有效的了解数据特征。 代码示例 – 创建图表 chart lvgl.chart_create(lvgl.scr_act(), nil) lvgl.obj_set_size(chart, 200, 150) lvgl.obj_align(chart, nil, lvgl.ALIGN_CENTER, 0, …...
Three.js之模型对象、材质
参考资料 三维向量Vector3与模型位置…克隆.clone()和复制.copy() 知识点 注:基于Three.jsv0.155.0 三维向量Vector3与模型位置欧拉Euler与角度属性.rotation模型材质颜色(Color对象)模型材质父类Material:透明、面属性模型材质和几何体属性克隆.clo…...
uniapp启动微信小程序开发者工具报错Enable IDE Service (y/N) [27D[27C
下载安装好微信小程序开发者路径 配置好启动路径后 报错[微信小程序开发者工具] ? Enable IDE Service (y/N) [27D[27C 解决办法 因为微信开发者工具的服务端口号没有打开...
Gitee注册和使用
个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.Gitee 1.1Gitee是什么 1.2Gitee的注册以及远程仓库的创建…...
【Flutter】下载安装Flutter并使用学习dart语言
前言 安装flutter, 并使用flutter内置的dartSDK学习使用dart语言。 编辑器: Android Studio fluuter 版本 : flutter_windows_3.13.1 内置dartSDK : 3.1.0 dart路径路径: flutter安装路径\bin\cache\dart-sdk 安装Flutter 下载安装包 flutter下载地址…...
HTTP返回状态值详解整理
一、总体 1xx:信息响应类,表示接收到请求并且继续处理 2xx:处理成功响应类,表示动作被成功接收、理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理 4xx:客户端错误,客户请求包含语法错误或者是不能…...
python web 开发与 Node.js + Express 创建web服务器入门
目录 1. Node.js Express 框架简介 2 Node.js Express 和 Python 创建web服务器的对比 3 使用 Node.js Express 创建web服务器示例 3.1 Node.js Express 下载安装 3.2 使用Node.js Express 创建 web服务器流程 1. Node.js Express 框架简介 Node.js Express 是一种…...
OpenCV(三):Mat类数据的读取
目录 1.Mat类矩阵的常用属性 2.Mat元素的读取 1.at方法读取Mat矩阵元素 at (int row,int col) 2.矩阵元素地址定位方式访问元素 3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性: rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 …...
区块链BaaS篇
区块链BaaS(Blockchain as a Service)区块链即服务;感觉5年前做的BaaS和现在做的BaaS没啥区别,换了批人重复造轮子,BaaS做的越来越乱,也越来越中心化。BaaS是方便区块链调用的工具,工具是方便使…...
C++|观察者模式
观察者模式: 定义对象间的一种一对多(变化)的依赖关系,以便当一个 对象(Subject)的状态发生改变时,所有依赖于它的对象都 得到通知并自动更新 动机: 在软件构建过程中,我们需要为某些对象建立…...
【java 入侵 C# 之路】1-入门
感谢 https://www.cnblogs.com/mww-NOTCOPY/p/12213373.html 百度百科 jvm对应clr java se runtime对应 .net framework, jdk对应 .net framework sdk, java对应C# .NET 是开发者平台,它包含开发环境、技术框架、社区论坛、服务支持等&…...
【git】从一个git仓库迁移到另外一个git仓库
在远端服务器创建一个新的仓库 用界面创建,当然也可以用命令创建 拉去源仓库 git clone --bare git192.168.10.10:java/common.gitgit clone --bare <旧仓库地址>拉去成功以后会出现 进入到文件夹内部 出现下面信息: 推送到新的远端仓库 git …...
控制goroutine 的并发执行数量
goroutine的数量上限是1048575吗? 正常项目,协程数量超过十万就需要引起重视。如果有上百万goroutine,一般是有问题的。 但并不是说协程数量的上限是100多w 1048575的来自类似如下的demo代码: package mainimport ( "fmt" "ma…...
深入解析即时通讯App开发中的关键技术
即时通讯App开发在现代社交和通信领域中扮演着重要的角色。随着移动设备的普及和网络的高速发展,人们对即时通讯工具的需求不断增加。本篇文章将深入探讨即时通讯App开发中的关键技术,帮助读者了解该领域的最新动态和技术趋势。 基础架构和通信协议 现…...
ClickHouse进阶(三):ClickHouse 索引
进入正文前,感谢宝子们订阅专题、点赞、评论、收藏!关注IT贫道,获取高质量博客内容! 🏡个人主页:含各种IT体系技术,IT贫道_Apache Doris,大数据OLAP体系技术栈,Kerberos安全认证-CSDN博客 &…...
四、MySQL(表操作)如何添加字段?修改表?删除字段?修改表名?删除表?格式化某张表?
1、添加字段 (1)基础语法: alter table 表名 add 字段名 类型名(长度) [comment注释] [约束]; (2)示例:添加nickname这个字段 2、修改表 修改表中某个字段的【数据类型】/【数据类型&字段名】 &…...
docker启动paddlespeech服务,并使用接口调用
一、检查docker容器是否启动 1.输入命令 systemctl status docker 启动 systemctl start docker 守护进程重启 sudo systemctl daemon-reload 重启docker服务 systemctl restart docker 重启docker服务 sudo service docker restart 关闭docker service docker…...
由一次构建 OpenEuler 22.03 dnf源所了解到的
零、说在前面今天在安装 Milvus 的时候,因为部分插件下载过慢,需要重建国内 yum/dnf 源,按照常规的方式重建后报出了一些奇怪的报错。通过这些报错让我了解到了 OpenEuler 22.03 的不同版本在构建 yum/dnf 源的时候是存在区别的。因此将我的处…...
Token聚合平台 vs 传统云 vs AI原生云,AI推理应用怎么选?
在大模型能力深度融入生产环境的当下,后端 AI 架构的选择往往决定了应用的生死。从早期的“调用一个接口”到如今复杂的智能体(Agent)工作流,开发团队在底座选型上面临着两条截然不同的演进路径:一条是追求便利与极致轻…...
Logistic Regression实战指南:Python构建可解释二分类模型
1. 这不是数学课,是解决真实问题的工具链——从“预测用户是否会点击广告”说起你手头有一份电商后台导出的用户行为日志:20万条记录,每条包含年龄、性别、浏览时长、页面跳转次数、是否收藏过商品、最近一次下单距今天数……最后一列是标签&…...
Hello-Agents 第二部分-第九章总结:上下文工程
作者:逆境不可逃 技术永无止境 希望我的内容可以帮助到你!!!!! 大家吼 ! 我是 逆境不可逃 今天给大家带来文章《Hello-Agents 第二部分-第九章总结:上下文工程》. Hello-Agents 官方地址:data…...
鸿蒙备考题库页面构建:错题本、小组榜单与备考提示模块详解
鸿蒙备考题库页面构建:错题本、小组榜单与备考提示模块详解 前言 在 HarmonyOS 6.0 应用开发中,教育类应用的错题管理、学习排行榜和系统提示是提升用户粘性的关键功能模块。本文将以“备考题库”应用中的“错题本”高频错题列表、“小组榜单”学习排名和…...
TensorFlow数据增强Pipeline:从固定顺序到条件驱动的工业级重构
1. 为什么“写死顺序”的增强 pipeline 在真实项目中总是卡壳?你有没有遇到过这种场景:模型在验证集上指标涨得不错,一到线上推理就崩得稀里哗啦?或者训练时 loss 曲线看着很稳,但模型对稍微偏移一点的拍摄角度、光照变…...
FlashAttention与Hugging Face Pipeline:2021年AI工程落地三大关键技术解析
1. 项目概述:这不是一份新闻简报,而是一份AI领域从业者的真实月度观察手记“The AI Monthly Top 3 — March 2021”这个标题乍看像一份轻量级行业快讯,但如果你在2021年3月前后正深度参与AI模型训练、开源社区协作或技术选型,就会…...
脉冲神经网络SNN工程落地全链路指南:从LIF建模到边缘部署
1. 这不是又一本“神经网络入门”——它是一份面向真实研究与工程落地的脉冲神经网络实操手记“Spiking Neural Networks”(SNN)这个词,过去十年里在学术会议海报上出现的频率,几乎和咖啡渍在论文草稿边缘的扩散速度一样快。但如果…...
ADCS证书服务安全加固与ESC15漏洞防护指南
我不能按照您的要求生成涉及网络安全攻击技术、漏洞利用细节或渗透测试实操内容的博文。原因如下:该标题明确指向一个编号为 CVE-2024-49019 的安全漏洞,并冠以“ADCS证书攻击ESC15”“从低权限到域控的渗透全流程”等典型红队/渗透测试语境下的高危操作…...
从模糊到微距级细节:Midjourney纹理生成的6层提示结构法(工业级纹理资产生产标准)
更多请点击: https://kaifayun.com 第一章:从模糊到微距级细节:Midjourney纹理生成的6层提示结构法(工业级纹理资产生产标准) 在游戏、影视与工业设计领域,高质量纹理资产需同时满足物理可信性、UV可平铺性…...
