【一网打尽】前端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-app create-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不同。这也导致了一些在插件系统上的不同。
相关推荐
有梦想的咕噜5 分钟前
Electron 是一个用于构建跨平台桌面应用程序的开源框架
前端·javascript·electron
yqcoder7 分钟前
electron 监听窗口高端变化
前端·javascript·vue.js
Python私教24 分钟前
Flutter主题最佳实践
前端·javascript·flutter
wangshuai092731 分钟前
vue使用prototype
vue.js
GDAL42 分钟前
HTML入门教程7:HTML样式
前端·html
生命几十年3万天1 小时前
解决edge浏览器无法同步问题
前端·edge
杨荧1 小时前
【JAVA毕业设计】基于Vue和SpringBoot的校园美食分享平台
java·开发语言·前端·vue.js·spring boot·java-ee·美食
API199701081102 小时前
京东平台接口技术详解及示例代码
开发语言·前端·python
前端热爱者2 小时前
axios post请求body为字符串时的解决方法
开发语言·前端·javascript