2.从0开始搭建vue项目(node.js,vue3,Ts,ES6)

article/2025/7/22 3:58:58

从“0到跑起来一个 Vue 项目”,重点是各个工具之间的关联关系、职责边界和技术演化脉络。

从你写代码 → 到代码能跑起来 → 再到代码可以部署上线,每一步都有不同的工具参与。

😺😺1. 安装 Node.js —— 万事的根基

Node.js 是 JS 的运行环境,它让 JS 能在浏览器之外运行,等于一个“JS版的JVM”。

💡 它的作用:
• 内置 V8 引擎(谷歌开发),能把 JS/TS 编译成机器码执行。
• 内置 npm(包管理器),让你方便安装和管理各种依赖(例如 axios、vue)。
• 是很多前端工具(如 Vite、Webpack、ESLint、TS 编译器)的“运行底座”。

为什么不是浏览器来跑?

因为开发阶段你写的很多东西(比如 TypeScript、Vue 组件)浏览器不认识,得先通过 Node.js 环境来“预处理”、打包、转译。

😺😺 2. 使用 npm/yarn/pnpm —— 下载各种依赖库

你需要别人写好的工具,npm 就是你下载这些工具的“快递小哥”。

比如你需要:
• vue:前端框架
• axios:发请求
• vite:构建工具
• typescript:编译 TS

你可以一行命令:

npm install vue axios vite typescript

npm 会帮你从网上(npm registry)拉取这些库及其依赖,统一放到 node_modules 目录中,并更新 package.json 文件。

😺😺 3. 初始化项目结构(通常使用 Vite 脚手架)

npm create vite@latest my-app
cd my-app
npm install

Vite 会给你搭好一个包含:
• 项目结构(src、public、vite.config.ts)
• Vue 支持(通过插件)
• TypeScript 支持
• 热更新配置
• ESM 模块支持

👉 这一步相当于“让项目有个基本形态”。

😺😺 4. 使用 Vite 运行开发环境

npm run dev

你会看到:

vite v5.0 dev server running at http://localhost:5173

这是 Vite 的“开发服务器”。但它背后做了很多事:

Vite 的作用(核心):
• 用 Node.js 启动自己(Vite 是 Node 工具)
• 在后台用 ESBuild 和 Rollup 编译项目代码(把 TS 编译成 JS、把 Vue 编译成普通模块)
• 实现浏览器原生支持的 ES Module 动态加载
• 实现 热更新(改一行代码自动刷新)

😺😺 5. Vue 框架登场:帮你写页面 + 构建交互

你最终写的,是 .vue 文件。

这里你用到了 Vue 的核心能力:
• ref() 和 reactive() 是 Vue 响应式系统(Proxy)创建的响应对象
• 会被 Vue 编译器转换为 h() 函数(虚拟 DOM)

Vue 的职责是:
• 帮你封装组件、渲染视图、处理状态更新
• 用响应式让 UI 和数据双向绑定
• 在构建阶段(由 Vite 驱动)把 .vue 文件变成纯 JS 模块供浏览器运行

😺😺6.TS和Es6语法

ES6
• 由 ECMAScript 标准组织提出。
• 提供了 let/const、箭头函数、解构、import/export 等写法。
• 需要 浏览器或 Node.js 支持 ES6,或者通过构建工具(如 Vite)转译成老版本 JS(比如 ES5)才能运行。

所以,ES6 本身不能“运行”代码,只是你写代码时用的一套规则。

TypeScript 是 JavaScript 的超集
• 加了类型系统,写起来更安全。
• 不能被浏览器或 Node.js 直接运行,必须先“编译成 JS”。
• 常和 Vite/Webpack/Babel 配合使用,最终输出纯 JS 文件。

TS 就像你写作文时加了一些注释,交稿前要删掉注释再打印出来。运行的永远是 JS。

😺😺7. 构建生产环境代码

开发完毕后,你执行:

npm run build

这时:
• Vite 会用 Rollup 把所有模块打包成一堆 JS 文件(按需拆分)
• 把 TS 编译成 JS
• 把 Vue 模板编译为 DOM 操作
• 压缩、混淆、优化体积

生成 /dist 目录,浏览器就能直接部署这些文件上线了。

🎯 整体技术链图谱总结(关系+流向)

在这里插入图片描述
在这里插入图片描述

😺😺😺小总结
Node.js 提供运行环境,npm 负责安装依赖。
Vite 是中间桥梁,把 Vue + TS + ES6 编译打包好。vue是一个框架,帮你封装组件,渲染视图,处理状态,用响应式让ui和数据双向绑定。在构建阶段 由vite驱动,把.vue变成.js在浏览器运行。开发中还会用到很多工具库,axios、vue-router、vant 等依赖,都是运行时需要的工具库,由 npm 统一管理。

下一篇 3.详细学习一下node.js的特性和底层原理
下一篇 4.vue.js的特性和底层原理,vue2 vue3的对比。


http://www.hkcw.cn/article/PshPndFhcM.shtml

相关文章

包管理工具

npx工具 npx是什么捏? npx是npm5.2之后自带的一个命令 npx的作用非常之多,但是比较常见的是它用来调用项目中的某个模块的指令 现在假设一个场景: 你在项目里安装了webpack,也在全局中安装了webpack,但是这俩版本…

信号发生器幅值和偏置设置

Vrms是有效幅度 Vpp是幅度峰峰值 Vp是幅度最大值 幅度 2Vpp, 偏置 0V: 信号范围: -1V (谷底) 到 1V (峰顶) -> 中心点在 0V。 幅度 2Vpp, 偏置 1V: 信号范围: (-1V 1V) 0V (谷底) 到 (1V 1V) 2V (峰顶) -> 中心点在 1V。 形状和 Vpp (2…

深入浅出:Spring IOCDI

什么是IOC IOC IOC(Inversion of Control),是一种设计思想,在之前的SpringMVC里就在类上添加RestController和Controller注解就是使用了IOC,这两个注解就是在Spring中创建一个对象,并将注解下的类交给Spring管理,Spr…

Java并发

一、进程和线程 进程: 程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在Java中,当我们启动main函数时其实就是启动了一个JVM进程&#xff…

通过回调函数注册定时器触发事件

1、说明 使用回调函数,注册定时器触发事件的模式,提高定时器中断的可操作性,那如何实现呢? 2、.h文件 下面是定时器句柄的声明 3、.c文件 3.1、静态定时器句柄头 3.2、定时器回调函数处理 下面的函数是放在1ms的中断中的&#…

Visual Studio+SQL Server数据挖掘

这里写自定义目录标题 工具准备安装Visual studio 2017安装SQL Server安装SQL Server Management Studio安装analysis service SSMS连接sql serverVisual studio新建项目数据源数据源视图挖掘结构部署模型设置挖掘预测 部署易错点 工具准备 Visual studio 2017 analysis servi…

大模型-attention汇总解析之-MHA

一、MHA(Multi-Head Attention) 1.1 MHA 原理 MHA(Multi-Head Attention)称为多头注意力,开山之作所提出的一种 Attention 计算形式,它是当前主流 LLM 的基础工作。在数学原理上,多头注意力 MHA 等价于多个独立的单头…

历年上海交通大学计算机保研上机真题

2025上海交通大学计算机保研上机真题 2024上海交通大学计算机保研上机真题 2023上海交通大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school String Match 题目描述 Finding all occurrences of a pattern in a text is a problem that arises freq…

DeepSeek-R1-0528-Qwen3-8B 本地ollama离线运行使用和llamafactory lora微调

参考: https://huggingface.co/deepseek-ai/DeepSeek-R1-0528-Qwen3-8B 量化版本: https://huggingface.co/unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF https://docs.unsloth.ai/basics/deepseek-r1-0528-how-to-run-locally 1、ollama运行 升级ollama版本到0.9.0 支持直接…

数字人革新教育:开启智慧教学新时代

随着人工智能技术的迅猛发展,数字人正在逐步走进教育领域,成为传统教学模式的颠覆者。广州深声科技有限公司(以下简称“深声科技”)凭借其在智能语音、数字人及多模态交互等核心技术上的深厚积累,推出了一系列创新性产…

Linux操作系统之进程(四):命令行参数与环境变量

目录 前言: 什么是命令行参数 什么是环境变量 认识环境变量 PATH环境变量 HOME USER OLDPWD 本地变量 本地变量与环境变量的差异 核心要点回顾 结语: 前言: 大家好,今天给大家带来的是一个非常简单,但也十…

IDA dumpdex经典脚本(记录)

一个dumpdex的IDA插件 毕业了,暂时用不着了,存起来 import idaapi import structdef dumpdex(start, len, target):rawdex idaapi.dbg_read_memory(start, len)fd open(target, wb)fd.write(rawdex)fd.close()def getdexlen(start):pos start 0x20mem idaapi.dbg_read_mem…

第2期:APM32微控制器键盘PCB设计实战教程

第2期:APM32微控制器键盘PCB设计实战教程 一、APM32小系统介绍 使用apm32键盘小系统开源工程操作 APM32是一款与STM32兼容的微控制器,可以直接替代STM32进行使用。本教程基于之前开源的APM32小系统,链接将放在录播评论区中供大家参考。 1…

Redis的安装与使用

网址:Spring Data Redis 安装包:Releases tporadowski/redis GitHub 解压后 在安装目录中打开cmd 打开服务(注意:每次客户端连接都有先打开服务!!!) 按ctrlC退出服务 客户端连接…

Redis 难懂命令-- ZINTERSTORE

**背景:**学习的过程中 常用的redis命令都能快速通过官方文档理解 但是还是有一些比较难懂的命令 **目的:**写博客记录一下(当然也可以使用AI搜索) 在Redis中,ZINTERSTORE 是一个用于计算多个有序集合(So…

7.atlas安装

1.服务器规划 软件版本参考: https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.2?hlzh-cn 由于hive3.1.3不完全支持jdk8,所以将hive的版本调整成4.0.1。这个版本没有验证过,需要读者自己抉择。 所有的软件都安装再/op…

RabbitMQ和MQTT区别与应用

RabbitMQ与MQTT深度解析:协议、代理、差异与应用场景 I. 引言 消息队列与物联网通信的重要性 在现代分布式系统和物联网(IoT)生态中,高效、可靠的通信机制是构建稳健、可扩展应用的核心。消息队列(Message Queues&am…

【技能篇】RabbitMQ消息中间件面试专题

1. RabbitMQ 中的 broker 是指什么?cluster 又是指什么? 2. 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布…

[3D GISMesh]三角网格模型中的孔洞修补算法

📐 三维网格模型空洞修复技术详解 三维网格模型在扫描、重建或传输过程中常因遮挡、噪声或数据丢失产生空洞(即边界非闭合区域),影响模型的完整性与可用性。空洞修复(Hole Filling)是计算机图形学和几何处…

基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…