如何创建一个 react 项目

article/2025/11/7 18:57:22

目录

前言

一、create-react-app 脚手架快速搭建 react 项目

1、安装 create-react-app

2、检测 create-react-app 是否安装成功

3、创建 react 项目

二、generator-react-webpack 脚手架搭建 react 项目

1、安装 yeoman

2、安装 generator-react-webpack

3、创建 react 项目

三、webpack 逐步构建 react 项目

1、新建一个文件夹,比如:react-webpack,并进入这个文件夹

2、初始化项目

3、跑通 webpack

(1)、安装 webpack 执行所需要的包环境

(2)在项目根目录新建 webpack.config.js 文件,在其中指定入口和出口文件

(3)、在根目录新建入口文件(index.html),并引入 webpack 指定的出口文件(index.js)

(4)、配置项目打包命令——build

(5)、测试 webpack 基础配置

4、开发服务器配置

(1)、安装 webpack-dev-server

(2)、配置 webpack.config.js 文件

(3)、在 packeage.json 里增加一个 scripts 命令——server。

(4)、测试开发服务器配置

5、热更新(可选)

(1)、在出口文件 index.js 中添加一个配置——publicPath

(2)、修改入口文件 index.html 引入的出口文件 index.js 的 src 地址

(3)、热更新测试

6、Babel 的安装配置

(1)、安装 Babel 的相关包

(2)、配置 module

7、编写 React 文件测试

(1)、安装 React 和 React-dom 包

(2)、改写 app/index.js 文件,把原来原生的 JavaScript 代码改成 React 代码。

8、模式的配置使用

9、常用 webpack 插件

1、extract-text-webpack-plugin

后记


前言

构建React项目的几种方式:

  • create-react-app 脚手架快速搭建 react 项目(推荐)。
  • generator-react-webpack 脚手架搭建 react 项目。
  • webpack 一步一步构建 react 项目。

一、create-react-app 脚手架快速搭建 react 项目

Create React App 中文文档

要求:Node>=8.10 并且 npm>=5.6

建议:Node>=10.14.2,否则会报错:error babel-jest@26.6.3: The engine "node" is incompatible with this module. Expected version ">= 10.14.2". Got "10.13.0"

1、安装 create-react-app

npm install -g create-react-app       // Windows
sudo npm install -g create-react-app  // Linux

2、检测 create-react-app 是否安装成功

create-react-app -V // 注意:V 是大写的 

3、创建 react 项目

npx create-react-app <项目名称>// 注意:名字不能包含大写字母。我的是 my-app。
cd my-app
npm start

说明:npx 是 npm 5.2+ 附带的 package 运行工具。

默认,create react app 创建的项目是看不到 webpack 相关的配置的,如果想要配置 webpack,只能先 eject 一下,执行命令来释放 webpack 的配置文件:

npm run eject

之后,你可能会遇到一个问题:Using `babel-preset-react-app` requires that you specify `NODE_ENV` or `BABEL_ENV` environment variables. Valid values are "development", "test", and "production". 

我参考了 github 上前辈的解决方案——在 package.json 文件中的 eslintConfig 对象里新增 parserOptions 选项(仅供参考):

如果没有立即生效,请重启下 VSCode 试试。若还不行,请君开疆拓土。

二、generator-react-webpack 脚手架搭建 react 项目

1、安装 yeoman

npm install -g yo

2、安装 generator-react-webpack

npm install -g generator-react-webpack

3、创建 react 项目

创建一个文件夹,比如:react-demo,并进入这个文件夹:

mkdir react-demo
cd react-demo

用生成器生成我们的项目目录 :

yo react-webpack

运行 react 项目:

npm start

三、webpack 逐步构建 react 项目

1、新建一个文件夹,比如:react-webpack,并进入这个文件夹

mkdir react-webpack
cd react-webpack

2、初始化项目

npm init -y

【拓展】 

关联远程仓库:

git remote add origin <url>

3、跑通 webpack

(1)、安装 webpack 执行所需要的包环境

npm i webpack webpack-cli html-webpack-plugin -D

(2)在项目根目录新建 webpack.config.js 文件,在其中指定入口和出口文件

var path =require('path');
module.exports = {//入口文件entry:'./src/index.js',//出口文件output:{path:path.resolve(__dirname,'dist'),filename:'bundle.js'}
}

(3)、在根目录新建入口文件(index.html),并引入 webpack 指定的出口文件(index.js)

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>React全家桶-jspang</title>
</head>
<body></body>
<!--引入出口文件-->
<script src="./dist/index.js"></script>
</html>

(4)、配置项目打包命令——build

打开package.json文件,在 scripts 属性中加入 build 命令:

"scripts": {"build": "rm -rf dist/* && webpack"
},

rm -rf dist/* && webpack:由于每次重新执行 webpack,都会生成一个 js 文件,所以为了不占用过多内存,我们每次执行 webpack 前,应该先删除现有的 dist 文件夹,再执行 webpack。 

(5)、测试 webpack 基础配置

在入口文件(/app/index.js)中写入下列代码:

function component(){var element = document.createElement('p');element.innerHTML = ('Hello world');return element;
}document.body.appendChild(component());

在终端中执行打包命令:

npm run build

就可以看到打包结果了。如果没有出现错误,在浏览器中打开,可以看到我们的编写结果。

到这部为止,我们正确安装了webpack,并进行了出入口的配置,也看到了webpack 的输出结果。

4、开发服务器配置

(1)、安装 webpack-dev-server

npm i webpack-dev-server -D

(2)、配置 webpack.config.js 文件

devServer:{contentBase: './',host: 'localhost',compress: true,port: 3000
}

(3)、在 packeage.json 里增加一个 scripts 命令——server。

"scripts": {"start": "webpack-dev-server --open""build": "rm -rf dist/* && webpack"    
},

说明:这里的 --open 是直接打开浏览器的意思。

(4)、测试开发服务器配置

在终端执行:

npm run start

报错:error code error errno 1 error react-webpack@1.0.0 server: `webpack-dev-server --open`

解决报错

5、热更新(可选)

(1)、在出口文件 index.js 中添加一个配置——publicPath

output:{filename:'index.js',path:path.resolve(__dirname,'dist'),publicPath:'temp/'
}, 

(2)、修改入口文件 index.html 引入的出口文件 index.js 的 src 地址

将 dist 改为 temp 即可:

<script src="./temp/index.js"></script>

(3)、热更新测试

重新运行项目,修改看看是否实现了热更新。

6、Babel 的安装配置

(1)、安装 Babel 的相关包

我们一般需要支持 es2015 和 React,所以要安装四个包:babel-core、babel-loader、babel-preset-es2015 和 babel-preset-react。

npm i babel-core babel-loader babel-preset-es2015 babel-preset-react -D

(2)、配置 module

在 webpack.config.js 里配置 module 的 loder:

module:{loaders:[{test:/\.js$/,exclude:/node_modules/,loaders:"babel-loader",query:{presets:['es2015','react']}}]
}

通过上边的步骤,webpack 已经基本配置完成了。

7、编写 React 文件测试

(1)、安装 React 和 React-dom 包

npm install --save react  react-dom

(2)、改写 app/index.js 文件,把原来原生的 JavaScript 代码改成 React 代码。

// index.js
import React from 'react';
import ReactDOM from 'react-dom';ReactDOM.render(<p>Hello world</p>,document.getElementById("app")
);

在入口文件 index.html 中增加一个 div 标签,并把 id 设置成 app。

// index.html
<div id="app"></div>

都配置完了,我们可以用之前配置好的 npm run server 命令进行预览了。

如果在浏览器中看到了 "Hello world" 这段文字,说明我们的配置成功了,以后就可以愉快的进行开发了。

8、模式的配置使用

选项描述
development会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 development. 为模块和 chunk 启用有效的名。
production会将 DefinePlugin 中 process.env.NODE_ENV 的值设置为 production。为模块和 chunk 启用确定性的混淆名称,FlagDependencyUsagePluginFlagIncludedChunksPluginModuleConcatenationPluginNoEmitOnErrorsPlugin 和 TerserPlugin 。
none不使用任何默认优化选项

如果没有设置,webpack 会给 mode 的默认值设置为 production

【注意】

设置 NODE_ENV 并不会自动地设置 mode

具体每种模式的具体配置请看这里

9、常用 webpack 插件

1、extract-text-webpack-plugin

extract-text-webpack-plugin:从 js 文件中提取分离样式,包括 CSS、less、scss。

详见:webpack的extract-text-webpack-plugin插件_No Bug !的博客-CSDN博客_extract-text-webpack-plugin

后记

其实自己配置 React 开发环境在实际工作中也并不多,因为我们的配置毕竟不是很成熟,而且支持较少。这里学习只是为了你更好的掌握 React 构建过程和设置参数。

实际工作中尽量使用合适的脚手架工具。

本文参考文档:怎样创建react项目? - html中文网


http://chatgpt.dhexx.cn/article/gvPce6TZ.shtml

相关文章

react项目服务器Tomcat,tomcat部署react项目的方法

tomcat部署react项目的方法 发布时间&#xff1a;2020-12-16 09:44:42 来源&#xff1a;亿速云 阅读&#xff1a;151 作者&#xff1a;小新 这篇文章主要介绍了tomcat部署react项目的方法&#xff0c;具有一定借鉴价值&#xff0c;需要的朋友可以参考下。希望大家阅读完这篇文章…

如何从零开始创建React项目(三种方式)

在开发 React 项目前最关键的当然是项目的创建&#xff0c;现在的前端工程化使得前端项目的创建也变得越来越复杂&#xff0c;在这里介绍三种从零开始创建 React 项目的方式&#xff0c;分别是 “在浏览器中直接引入”、“使用官方脚手架 create-react-app” 以及 “使用 Webpa…

【React进阶-1】从0搭建一个完整的React项目(入门篇)

这篇文章带领大家从零开始手动撸一个React项目的基础框架&#xff0c;集成React全家桶。万字长文&#xff0c;请各位有足够的时间时再来阅读和学习。 概述 平时工作中一直在用React提供的脚手架工具搭建React项目&#xff0c;一行命令全都搞定&#xff0c;自己只管做需求开发即…

推荐10个不错的React开源项目

1&#xff0c;Kutt.it Kutt是一个现代的URL缩短器&#xff0c;支持自定义域&#xff0c;可以用来缩短网址、管理链接并查看点击率统计信息。Kutt支持自定义域名&#xff0c;设置链接密码和描述&#xff0c;缩短URL的私人统计信息&#xff0c;查看、编辑、删除和管理链接&#…

Github上8个很棒的React项目

大家好&#xff0c;我是若川。持续组织了近一年的源码共读活动&#xff0c;感兴趣的可以 点此加我微信ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。…

MySQL 数据库引擎比较

MyISAM: 优势 – 查询速度快 – 数据和索引压缩 问题 – 表级锁 – 数据丢失 InnoDB: 优势 – 行级锁 – 事务支持 – 数据安全 问题 – 数据文件庞大 – 启动慢 – 不支持FULLTEXT索引 比较:

数据库_mysql数据库引擎_数据库索引

文章目录 前言一、MySql数据库引擎1.1、数据库引擎任务1.2、常用的数据库引擎1.2.1、InnoDB存储引擎页主要部分 InnoDB的几个变量 1.2.2、MyISAM存储引擎1.3 、存储引擎设置1.4、如何选择存储引擎 二、索引的数据结构2.1、什么是索引2.2、索引有什么用2.3、优点和缺点2.4 为什么…

【Mysql】数据库引擎

引擎 存储引擎数据库引擎数据库引擎的定义数据库引擎的任务mySql引擎的类别ISAM引擎MyISAM引擎Heap引擎InnoDB引擎InnoDB与MyISAM对比 存储引擎 MySQL常见的两种存储引擎&#xff1a;MyISAM和InnoDB 数据库引擎 数据库引擎的定义 访问数据库时&#xff0c;通过数据库引擎访…

mysql之数据库引擎

一&#xff1a;引擎概述 1&#xff0c;为什么要合理选择数据库存储引擎&#xff1f; MySQL中的数据用各种不同的技术存储在文件&#xff08;或者内存&#xff09;中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过…

MYSQL——MYSQL中常见的数据库引擎

文章目录 MYSQL中常见的数据库引擎1、什么是数据库引擎&#xff1f;2、MYSQL中有哪些数据库引擎3、常见引擎介绍&#xff08;1&#xff09;InnoDB&#xff08;2&#xff09;MyISAM&#xff08;3&#xff09;Memory&#xff08;Heap&#xff09; MYSQL中常见的数据库引擎 1、什…

Mysql:数据库引擎

废话不多说&#xff0c;我们先看MySql 用到了那些引擎 SHOW ENGINES 直接可以看到有下面这些引擎 InnoDB&#xff0c;MRG_MYISAM&#xff0c;MEMORY&#xff0c;BLACKHOLE&#xff0c;MyISAM&#xff0c;CSV&#xff0c;ARCHIVE&#xff0c;PERFORMANCE_SCHEMA&#xff0c;FE…

MySQL体系结构及数据库引擎

文章目录 一、MYSQL的体系结构1、连接器2、查询缓存3、分析器&#xff08;要做什么&#xff09;4、优化器&#xff08;怎么做&#xff09;5、执行器6、数据库引擎1&#xff09;mysql支持的引擎2&#xff09;常用的mysql引擎比较3&#xff09;索引组织表、堆组织表4&#xff09;…

MySQL数据引擎

一、MySQL提供什么存储引擎 mysql> SHOW ENGINES;二、查看默认的存储引擎&#xff1a; mysql> SHOW VARIABLES LIKE %storage_engine%;三、各种引擎介绍 1、InnoDB存储引擎&#xff08;1&#xff09;大于等于5.5之后&#xff0c;默认采用InnoDB引擎&#xff08;2&…

MySQL数据库引擎详解

作为经常使用MySQL数据库的人&#xff0c;不得不对MySQL的数据库引擎有一定的了解&#xff0c;在之前我也是只会使用MySQL&#xff0c;但两次的面试中都被面试官问及项目用到的数据库引擎&#xff08;血与泪&#xff09;&#xff0c;因此&#xff0c;有必要写一篇文章&#xff…

数据库引擎

一&#xff1a;数据库引擎的定义 数据库引擎简单来说就是一个"数据库发动机"。当你访问数据库时&#xff0c;不管是手工访问&#xff0c;还是程序访问&#xff0c;都不是直接读写数据库文件&#xff0c;而是 通过数据库引擎去访问数据库文件。以关系型数据库为例&…

MySQL的数据库引擎介绍

1、什么是数据库引擎 数据库引擎就是操作数据库的一段程序或程序段&#xff0c;用于存储、处理和保护数据的核心服务。 利用数据库引擎可控制访问权限并快速处理事务&#xff0c;从而满足企业内大多数需要处理大量数据的应用程序的要求。数据库应用项目是通过数据库引擎与数据库…

CY7C68013 内存溢出问题

最近在开发CY68013 USB芯片的时候&#xff0c;开发环境&#xff08;keil C51&#xff09;&#xff0c;开始的时候都编译正常&#xff0c;但是在我增加了一些变量和操作后&#xff0c;出现了很多的报错&#xff0c;提示内存溢出 *** ERROR L107: ADDRESS SPACE OVERFLOW 之前的…

基于CY7C68013A usb转mdio win10 64bit

基于CY7C68013A usb转mdio win10 64bit 1、芯片简介&#xff1a; 目前市场上主流的实现USB通信的方案主要是基于stm32(基于目前比较流行的DAPLink方案)/ft232/ch341等&#xff0c;CY7C68013A芯片历史较久&#xff0c;价格也相对偏高但USB通信设计的方法应该都是一致的。 手上…

CY7C68013与FPGA接口的Verilog

USB(通用串行总线)是英特尔、微软、IBM、康柏等公司1994年联合制定的一种通用串行总线规范&#xff0c;它解决了与网络通信问题&#xff0c;而且端口扩展性能好、容易使用。最新的USB2.0支持3种速率&#xff1a;低速1.5 Mbit/s&#xff0c;全速12 Mbit/s&#xff0c;高速480 Mb…

CY7C68013A之LED闪烁

#include "fx2.h" #include "fx2regs.h"sbit LED_PIN IOD ^ 3;main() {unsigned long i 0;OED | 0x08; //PD3 Output Enable;while(TRUE){if( i > 50000 ){i 0;LED_PIN ~LED_PIN;}} } 程序下载 Download是将程序下载到RAM&#xff0c;Lg E…