使用webpack5从0到1搭建一个react项目的实现步骤

yizhihongxing

以下是使用Webpack5从0到1搭建一个React项目的详细攻略:

1. 初始化项目

我们先创建一个空文件夹,在命令行中进入该文件夹,然后执行以下命令:

npm init -y

这个命令将会创建一个 package.json 文件,配置好了一些默认的选项。

2. 安装webpack及其相关插件

在项目根目录下,执行以下命令:

npm install webpack webpack-cli webpack-dev-server --save-dev

然后安装babel相关的插件,用于编译ES6及以上版本的JavaScript代码:

npm install @babel/core babel-loader @babel/preset-env @babel/preset-react --save-dev

3. 配置webpack

在项目根目录下创建一个 webpack.config.js 文件,用于配置webpack。以下是一个基本的配置文件示例:

const path = require('path');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/preset-env', '@babel/preset-react'],
          },
        },
      },
    ],
  },
};

上述配置文件的主要作用是:

  • 定义入口文件为 ./src/index.js
  • 定义输出文件名为 bundle.js,并输出到 ./dist 目录下
  • 针对JavaScript文件使用 babel-loader 进行编译,编译过程使用 @babel/preset-env@babel/preset-react 两个插件

4. 配置React

在项目根目录下安装React及其相关依赖:

npm install react react-dom prop-types --save

其中:

  • react 用于编写React代码
  • react-dom 用于渲染React组件
  • prop-types 用于配置props类型检查

./src 目录下创建一个 index.js 文件,并编写以下代码:

import React from 'react';
import ReactDOM from 'react-dom';

const App = () => (
  <div>
    <h1>Hello, world!</h1>
  </div>
);

ReactDOM.render(<App />, document.getElementById('root'));

上述代码定义了一个名为 App 的组件,该组件返回一个包含 Hello, world!h1 标签。然后使用 ReactDOM.render 将该组件渲染到 idroot 的元素中。

5. 配置开发服务器

package.json 文件中新增以下代码:

"scripts": {
  "start": "webpack-dev-server --mode development --open"
},

上述代码的作用是定义一个名为 start 的脚本,用于启动开发服务器。执行 npm start 命令即可启动开发服务器,并在浏览器中打开项目。

6. 最终目录结构

在以上步骤完成后,项目的最终目录结构如下:

├── dist
│   └── bundle.js
├── node_modules
├── src
│   └── index.js
├── package.json
├── package-lock.json
└── webpack.config.js

其中:

  • ./dist/bundle.js 为编译后的文件
  • ./src/index.js 为入口文件
  • webpack.config.js 为webpack配置文件

示例说明

示例1:使用styled-components编写样式

在项目根目录下安装styled-components:

npm install styled-components --save

./src/index.js 文件中引入styled-components,并使用该库编写样式:

import React from 'react';
import ReactDOM from 'react-dom';
import styled from 'styled-components';

// 定义样式组件
const Heading = styled.h1`
  color: palevioletred;
  font-size: 48px;
`;

const App = () => (
  <div>
    <Heading>Hello, world!</Heading>
  </div>
);

ReactDOM.render(<App />, document.getElementById('root'));

上述代码中,使用 styled-components 定义了一个样式组件 Heading,同时使用 <Heading> 替代了原有的 <h1> 标签。

示例2:使用其他文件类型作为Webpack的入口文件

在项目根目录下创建一个名为 index.html 的文件,并编写以下代码:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Webpack 5 React Demo</title>
  </head>
  <body>
    <div id="root"></div>
    <script src="./src/index.js"></script>
  </body>
</html>

webpack.config.js 中修改 entry 选项为:

entry: './index.html',

然后在命令行中执行:npm start 命令,即可在浏览器中打开 index.html 文件,正确渲染React应用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用webpack5从0到1搭建一个react项目的实现步骤 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • asp.net AjaxControlToolKit–TabContainer控件的介绍

    我可以为您提供详细讲解“ASP.NET AjaxControlToolkit–TabContainer控件的介绍”的攻略。 介绍 ASP.NET AjaxControlToolkit–TabContainer控件是一种可用于创建带有选项卡式用户界面的控件。TabContainer控件允许在单个页面中组织和呈现不同的内容。这对于使网页更加易于管理和导航非常…

    other 2023年6月27日
    00
  • Win10一周年更新正式版SDK下载地址

    Win10一周年更新正式版SDK下载攻略 Win10一周年更新正式版SDK是用于开发应用程序的工具包。以下是详细的攻略,包括下载地址和示例说明。 下载地址 你可以从微软官方网站下载Win10一周年更新正式版SDK。以下是下载地址: Win10一周年更新正式版SDK下载地址 步骤 打开上述链接,你将被重定向到微软官方网站的下载页面。 在下载页面上,你可以看到W…

    other 2023年8月4日
    00
  • 基于MySQL架构图解

    基于MySQL架构图解攻略 MySQL是一种常用的关系型数据库管理系统,它的架构图可以帮助我们理解MySQL的内部工作原理。下面是一个详细的攻略,将会解释MySQL的各个组件和它们之间的关系。 1. MySQL架构图概述 MySQL的架构图主要由以下几个组件组成: 客户端:客户端是与MySQL服务器进行通信的应用程序。它可以是命令行工具、图形界面工具或者We…

    other 2023年8月2日
    00
  • thinkphpvendor

    thinkphpvendor 简介 thinkphpvendor是一个基于ThinkPHP 6.x开发的扩展包,提供各种常用的工具类和函数,可以帮助开发者快速构建高质量的应用程序。 功能 thinkphpvendor具有以下几个主要功能: 框架扩展:扩展原有框架,提供更好的开发体验和更多的功能。 常用工具类:提供常用的工具类,方便开发者进行开发。 函数库:提…

    其他 2023年3月29日
    00
  • php初学留神(二)

    以下是“php初学留神(二)”的完整攻略: PHP初学留神(二) 本攻略将详细讲解PHP初学者需要注意的一些问题,括变量的命名规范、变量的作用域、数据类型的转换、字符串的处理等。 变量的命名规范 在中,变量的命名规范如下: 变量名必须以字母或下划线开头。 变量名只能包含字、数字和下划线。 变量名区分大小写。 变量名应该具有描述性,以便于代码的阅读和维护。 例…

    other 2023年5月8日
    00
  • java-java在调用web服务时收到错误403

    以下是关于Java在调用Web服务时收到错误403的完整攻略,包括定义、原因、解决方法和示例说明。 定义 Java在调用Web服务时收到错误403是指在使用Java编写服务客户端时,当向Web服务发送请求时,服务器返回了HTTP状态码403,表示服务器拒绝了请求。 原因 Java在调用Web服务时收到错误403的原因可能有以下几种: 权限不足:服务器拒绝了请…

    other 2023年5月8日
    00
  • 在 Vue 项目中引入 tinymce 富文本编辑器的完整代码

    让我们来详细讲解在 Vue 项目中引入 tinymce 富文本编辑器的完整代码攻略。 引入 tinymce 富文本编辑器 首先,我们需要安装 tinymce,并通过 npm 安装 tinymce-vue 组件,示例代码如下: npm install tinymce -D npm install @tinymce/tinymce-vue -D 注册 tinym…

    other 2023年6月20日
    00
  • nuxt.js服务端渲染中axios和proxy代理的配置操作

    当使用 Nuxt.js 进行服务端渲染时,我们可以通过配置 axios 库和代理(proxy)来优化 API 请求和应用性能。 配置 axios 库 首先,我们需要安装和编辑 nuxt.config.js 文件来配置 axios 库。安装 axios 库可以使用以下命令: bash npm install @nuxtjs/axios 接下来,我们需要在 nu…

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部