当前位置: 首页 > article >正文

【一网打尽】前端Vue和React项目的构建

下面是使用create-react-app、create-vue(Vite)和Vue CLI构建前端脚手架项目的详细步骤,以及一个整理它们之间区别的表格。

一、使用create-react-app构建React项目

  1. 安装create-react-app

    • 确保已安装Node.js和npm(Node.js自带npm包管理器)。
    • 在命令行中执行npx create-react-app my-react-appmy-react-app为项目名称,可自定义)。

  1. 启动项目

    • 进入项目目录:cd my-react-app
    • 执行npm start启动项目,运行成功后,浏览器会自动打开并显示React的初始化界面。

  1. 项目结构

    • 项目创建成功后,会生成一个包含必要文件和目录的React项目结构。
    • 主要文件包括:index.html(项目入口文件)、index.js(框架入口文件)、App.js(组件示例代码,主入口文件)。

二、使用create-vue(Vite)构建Vue项目

  1. 安装create-vue

    • 确保已安装Node.js和npm。
    • 在命令行中执行npm init vue@latestyarn create vue(选择其一)。
  2. 配置项目

    • 根据提示选择项目模板和配置,如Vue Router、Pinia等。
    • Vite会自动生成项目结构。

  1. 启动项目

    • 进入项目目录。
    • 执行npm install安装依赖。
    • 执行npm run dev启动项目,运行成功后,浏览器会自动打开并显示Vue的初始化界面。

Vue CLI现已经不推荐使用了,若需要安装,安装前建议检查以下Node版本是否符合要求

** 若需频繁切换node版本,建议使用nvm工具**同一台电脑 实现 vue-cli2和vue-cli3同时并存_电脑能同时下vue2和vue3吗-CSDN博客

三、使用Vue CLI构建Vue项目

  1. 安装Vue CLI

    • 确保已安装Node.js和npm。
    • 在命令行中执行npm install -g @vue/cli(全局安装Vue CLI)。

  1. 创建项目

    • 执行vue create my-vue-appmy-vue-app为项目名称,可自定义)。
    • 根据提示选择配置,如Babel、Router、Vuex等。
  2. 启动项目

    • 进入项目目录。
    • 执行npm run serve启动项目,运行成功后,浏览器会自动打开并显示Vue的初始化界面。

四、区别整理

create-react-appcreate-vue(Vite)Vue CLI
用途创建React项目创建Vue 3项目创建Vue项目(支持Vue 2和Vue 3)
依赖管理使用npm或yarn使用npm或yarn使用npm或yarn
构建工具内置Webpack使用Vite使用Webpack
配置方式较少配置,通过eject命令可自定义Webpack配置现代化配置,可通过配置文件自定义丰富的配置选项,可通过图形界面或命令行配置
项目结构简洁明了,适合快速上手现代化项目结构,适合大型项目灵活可配置的项目结构
性能适中,适合大多数React项目出色,快速的热更新和构建速度依赖Webpack配置,性能可优化
生态系统React生态丰富,适合构建复杂应用Vue 3生态丰富,与Vite搭配更佳Vue生态丰富,支持多种插件和配置

以上是使用create-react-app、create-vue(Vite)和Vue CLI构建前端脚手架项目的详细步骤及区别整理。

 npx

一、npx的原理

npx会在当前项目的node_modules或环境变量$PATH中查找命令。若未找到,则会安装其最新版本并执行。具体来说,npx的运行原理如下:

  1. 查找命令:npx会首先检查node_modules/.bin路径和环境变量$PATH中是否存在要执行的命令。
  2. 执行命令:如果找到了命令,npx会直接执行它。
  3. 安装并执行:如果未找到命令,npx会下载并安装该命令的最新版本(或用户指定的版本),然后执行它。
二、npx的特点
  1. 无需全局安装:npx允许用户临时安装并执行依赖包,无需全局安装,避免了全局环境的污染。
  2. 自动执行安装的包:npx会自动安装并执行所需的依赖包,无需用户手动安装。
  3. 自动加载本地依赖:npx会自动加载node_modules中的依赖包,无需用户指定$PATH
  4. 支持指定版本:npx允许用户指定要执行的命令的版本,解决了不同项目间命令版本冲突的问题。
三、npx的使用方法
  1. 安装npx:虽然npm 5.2.0及以上版本自带npx命令,但用户也可以通过npm install -g npx命令全局安装npx(通常无需这样做,因为npm已经自带了)。
  2. 执行命令:使用npx执行命令时,只需在命令行中输入npx [命令名]即可。例如,要执行create-react-app命令创建一个React项目,可以使用npx create-react-app my-react-app命令。
  3. 指定版本:要指定命令的版本,可以在命令名后添加@符号和版本号。例如,要执行3.1.0版本的uglify-js命令,可以使用npx uglify-js@3.1.0 main.js -o ./dist/main.js命令。
四、npx的参数

npx还提供了多个参数,以便用户更好地控制其行为。以下是一些常用的参数:

  1. --no-install:如果本地不存在要执行的命令,则报错而不进行安装。
  2. --ignore-existing:忽略本地的同名模块,强制安装并使用远程模块。
  3. -p:指定npx所要安装的模块。例如,npx -p node@0.12.8 node -v会先安装node@0.12.8版本,然后执行node -v命令。
  4. -c:将所有命令都用npx解释,并将环境变量带入所要执行的命令。例如,npx -p lolcatjs -p cowsay -c 'cowsay hello | lolcatjs'会先安装lolcatjs和cowsay模块,然后执行命令。
五、npx的应用场景
  1. 临时使用依赖包:当用户需要临时使用某个依赖包时,可以使用npx命令,而无需全局安装该包。
  2. 解决版本冲突:当不同项目需要使用不同版本的命令时,可以使用npx指定要执行的命令的版本,以避免版本冲突。
  3. 执行远程代码:npx还可以执行GitHub等远程平台上的模块源码,方便用户快速尝试和测试代码。

Vue CLI与Vite 

https://so.csdn.net/so/search?q=vite&t=blog&u=m0_55049655

Vue CLI与Vite之间存在明显的区别,这些区别主要体现在实现原理、优化策略、开发环境速度、构建速度、依赖关系分析和插件系统等方面。以下是关于Vue CLI和Vite区别的详细分析:

  1. 实现原理
    • Vue CLI:使用Webpack作为默认的构建工具。Webpack是一个模块打包工具,它将项目中的所有资源打包成一个或多个bundle,以优化加载性能。Vue CLI还支持其他构建工具,如Parcel
    • Vite:基于ESModule的构建工具。它利用原生ESModule的特性,将每个文件作为一个模块,通过浏览器去解析和执行,而不需要提前将文件打包成一个单独的bundle
  2. 优化策略
    • Vue CLI:通过多个功能和插件来进行优化,包括代码分割、压缩、缓存等。Webpack提供的各种功能使得Vue CLI能够灵活地配置和优化构建输出。
    • Vite:在开发环境中通过将源代码直接发送到浏览器,避免了传统的打包过程,实现了更快的开发启动速度。此外,Vite还通过按需加载模块和使用缓存来提高构建和打包的性能。
  3. 开发环境速度
    • Vue CLI:启动速度相对较慢,因为它需要进行完整的打包过程。
    • Vite:开发环境启动速度较快,因为它充分利用了原生ESModule的特性,避免了传统的打包过程。
  4. 构建速度
    • Vue CLI:在构建速度上可能相对较慢一些,尤其是在大型项目中,因为Webpack需要处理和分析项目中的所有依赖和模块。
    • Vite:由于Vite在开发环境中的优势,构建速度通常也较快。
  5. 依赖关系分析
    • Vue CLI:Webpack在处理依赖关系时,可能不如Vite那样细粒度,因此可能存在一些冗余的模块。
    • Vite:可以更细粒度地分析依赖关系,实现按需加载,减小了构建体积
  6. 插件系统
    • Vue CLI:使用基于Webpack的插件系统,Webpack生态相对成熟,有更多的插件可供选择。
    • Vite:使用了Rollup作为其构建引擎,这与Vue CLI使用的Webpack不同。这也导致了一些在插件系统上的不同。

http://www.kler.cn/a/375824.html

相关文章:

  • ctfshow——web(总结持续更新)
  • AI视频管理平台中使用目标检测模型中的NMS参数原理及设置原则
  • 补齐:相交链表:扣160
  • [ 问题解决篇 ] win11中本地组策略编辑器gpedit.msc打不开(gpedit.msc缺失)
  • 开源全站第一个nextron项目--NextTalk:一款集成chatgpt的实时聊天工具
  • MacOS的powermetrics命令查看macbook笔记本的耗能情况,附带查看ANE的工作情况
  • 安装 Visual Studio
  • PPT素材、模板免费下载!
  • Qt 使用QXlsx将QTableView数据导出到Excel表格
  • Ceph 学习指南 集群部署【 cephadm 】
  • 嵌入式硬件设计:智能设备的核心
  • 人工智能中的学习方法详解
  • 盖电子章的软件
  • Tomcat安装和配置(超详细)
  • [运维] 服务器本地网络可用性检查脚本
  • 【深度学习】实验 — 动手实现 GPT【三】:LLM架构、LayerNorm、GELU激活函数
  • 基于单片机的宠物自动喂食系统的设计
  • 【Unity实战笔记】第二十二 · 基于SMB的角色控制中遇到的一些问题(斜坡移动鬼畜、落地卡顿、角色突进、头发动画失效等)
  • (五)关于InternVL2的模型训练二(如何训练目标定位模型)
  • IDEA中通义灵码的使用技巧
  • Python 游戏开发库比较与示例
  • vue当中的$使用方法
  • leetcode71:简化路径
  • uniapp开发小程序【简单的实现点击下拉选择性别功能】
  • c++11(下篇)
  • Node.js 发展史