从零搭建Webpack5-react脚手架的实现步骤(附源码)

下面我将详细讲解“从零搭建Webpack5-react脚手架的实现步骤(附源码)”的完整攻略。

实现步骤

1. 初始化项目

首先,我们需要创建一个空的 Node.js 项目。我们可以使用 npm 或者 yarn 来初始化项目,这里以使用 npm 为例:

npm init -y

这会自动生成一个 package.json 文件,其中 -y 参数表示开启了自动配置的选项,统一接受所有默认值。

2. 安装 webpack

接下来,我们需要安装 webpack,它是一个用于打包 JavaScript 模块的工具。我们可以使用以下命令安装:

npm install webpack webpack-cli --save-dev

其中,webpack-cli 是 webpack 命令行工具,用于在终端中使用 webpack。

3. 安装 babel

由于我们准备使用 React 编写页面,因此我们需要使用 babel 来将 JSX 语法转换为 JavaScript。我们可以使用以下命令安装:

npm install @babel/core babel-loader @babel/preset-env @babel/preset-react --save-dev
  • @babel/core 是 babel 的核心模块;
  • babel-loader 是 webpack 使用 babel 的加载器;
  • @babel/preset-env 是 babel 可以使用的预设之一,它可以将 ES6 代码(包括 ES6 的语法、API、变量声明等)转换成浏览器可以支持的 ES5 代码;
  • @babel/preset-react 是 babel 可以使用的另一个预设,它可以将 React 的 JSX 语法转换成 JavaScript。

4. 安装 React 和 ReactDOM

接下来,我们需要安装 React 和 ReactDOM,这两个库是用于实现 React 的核心模块。我们可以使用以下命令安装:

npm install react react-dom --save

5. 配置 webpack

我们需要在项目根目录下创建一个 webpack.config.js 文件,我们将在其中进行 webpack 配置。以下是一个最简单的 webpack 配置文件:

const path = require('path');

module.exports = {
  entry: './src/index.js', // 入口文件
  output: { // 输出到 dist/bundle.js
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },
  module: { // 配置加载器
    rules: [
      {
        test: /\.js$/, // 匹配 JS 文件
        exclude: /node_modules/, // 排除掉 node_modules 目录
        use: {
          loader: 'babel-loader', // 使用 babel-loader
        },
      },
    ],
  },
};

其中,entry 表示入口文件(相对路径),output 表示输出文件(输出到 dist 目录下的 bundle.js 文件),module 表示模块加载配置。我们的规则是,匹配所有 .js 文件,但是排除掉 node_modules 目录,最后使用 babel-loader 进行加载。

6. 添加页面和组件

接下来,我们需要在 src 目录下添加一个 index.js 文件,这将是我们 React 项目的入口文件。并且,我们还需要添加一个 App.js 组件,在其中编写 React 代码。别忘了在 index.js 中使用 ReactDOM 渲染 App 组件。

以下是简单的示例代码:

// src/index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

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


// src/App.js

import React, { Component } from 'react';

class App extends Component {
  render() {
    return (
      <div>
        <h1>Hello, React!</h1>
      </div>
    );
  }
}

export default App;

7. 添加 html 模板文件

我们需要在根目录下添加一个 index.html 文件,并且在其中引入打包后的脚本文件(即上一步中的 dist/bundle.js 文件)。以下是一个最简单的 index.html 文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Webpack 5 React Starter</title>
</head>
<body>
  <div id="root"></div>
  <script src="./dist/bundle.js"></script>
</body>
</html>

8. 添加 npm script

我们可以在 package.json 文件中添加一个 npm script,用于编译打包我们的代码,以及开启一个本地服务器来预览。以下是一个最简单的 package.json 文件:

{
  "name": "webpack5-react-starter",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "dev": "webpack serve --mode development --open",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.16.12",
    "@babel/preset-env": "^7.16.11",
    "@babel/preset-react": "^7.16.7",
    "babel-loader": "^8.2.3",
    "webpack": "^5.65.0",
    "webpack-cli": "^4.9.1",
    "webpack-dev-server": "^4.6.0"
  },
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2"
  }
}

其中 dev 是用于开发环境的命令,build 是用于生产环境的命令。我们可以使用以下命令来启动开发服务器:

npm run dev

9. 编译打包

最后,我们可以使用以下命令来编译打包我们的代码:

npm run build

这会生成一个 dist 目录,并且在其中包含一个 bundle.js 文件,这就是我们打包后的代码。

示例

以下是两个 webpack5-react 脚手架示例:

示例一:webpack5-react 脚手架

这个示例是一个最简单的 webpack5-react 脚手架,你可以直接 clone 代码,然后开始编写自己的 React 项目。

https://github.com/huakang123/webpack5-react-starter

示例二:webpack5-react-router 脚手架

这个示例是一个使用了 React Router 的 webpack5-react 脚手架,它可以让你快速开始开发使用了路由的 React 项目。

https://github.com/huakang123/webpack5-react-router-starter

以上就是“从零搭建Webpack5-react脚手架的实现步骤(附源码)”的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:从零搭建Webpack5-react脚手架的实现步骤(附源码) - Python技术站

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

相关文章

  • 浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果

    针对“浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果”,我们可以分为以下几个方面进行介绍: 一、Hack概述 Hack(或称为CSS Hack),是指为了解决不同浏览器对CSS属性的兼容性问题而采取的针对特定浏览器的非标准写法。Hack的出现虽然解决了一部分浏览器兼容问题,但也有一定的副作用,如会导致CSS样式的不完全合法,增加代码负…

    css 2023年6月9日
    00
  • css3中2D转换之有趣的transform形变效果

    针对您提出的问题,我将从以下几个方面来详细讲解CSS3中2D转换之有趣的transform形变效果的攻略。 什么是CSS3中的transform? 在CSS3中,transform是可以同时改变元素的位移、缩放、旋转和倾斜等操作。而transform属性的常用值如下: translate:平移操作,可以在x和y轴上分别设置平移距离。 scale:缩放操作,可…

    css 2023年6月10日
    00
  • 使用jquery实现放大镜效果

    针对“使用 jQuery 实现放大镜效果”的完整攻略,我会给出以下步骤: 1. 准备工作 首先需要引入 jQuery 库,可以直接使用 jQuery 官网提供的CDN链接,也可以将 jQuery 下载到本地并引用。其次,需要准备放大镜所需的图片资源和相应的 CSS 样式文件。 2. HTML 结构 在页面中创建一个容器来呈现图片和放大效果,并将 HTML 结…

    css 2023年6月9日
    00
  • 5种做法实现table表格中的斜线表头效果

    让我来详细讲解一下“5种做法实现table表格中的斜线表头效果”的完整攻略。 什么是斜线表头效果 斜线表头效果指的是在表格的表头中,使用斜线来分隔单元格,使得表头具有更好的视觉效果和分组展示。在很多场景下,表格的斜线表头效果可以极大地提高表格的可读性和可视性。 5种实现斜线表头的方法 1. 使用 colspan 和 rowspan 属性 在 HTML 的 t…

    css 2023年6月10日
    00
  • CSS的一些必记属性整理

    下面是对于CSS的一些必记属性整理的详细讲解: CSS的一些必记属性整理 1. display 属性 display属性常用于控制元素的显示方式。具体的取值有: none:元素不显示,同时占用的空间也不保留 block:元素被渲染为块级元素,通常会独占一行,可以在其中设置宽度、高度、内外边距等属性 inline:元素被渲染为行内元素,通常不支持设置宽度、高度…

    css 2023年6月9日
    00
  • 分享12个Webpack中常用的Loader(小结)

    请允许我逐步讲解“分享12个Webpack中常用的Loader(小结)”的完整攻略。 标题 本文的标题是“分享12个Webpack中常用的Loader(小结)”, 介绍 在Web开发中,Webpack已成为一个重要的构建工具。Webpack的Loader是Webpack功能的重要组成部分之一,它可以在打包构建过程中实现各类文件的转换、处理和优化。在本文中,我…

    css 2023年6月10日
    00
  • css 借助autoflow 属性 实现 选座位效果

    下面是详细讲解 “css 借助 autoflow 属性实现选座位效果” 的攻略: 什么是 autoflow 属性? autoflow 属性是一个 CSS Grid Layout 布局属性,用于控制网格中的元素如何排列。该属性在 CSS Grid Layout 规范中是自动流布局算法。它十分适合在动态数据的场景下使用,比如表格、列表等需动态生成元素的布局。 如…

    css 2023年6月10日
    00
  • 拥有一个属于自己的javascript表单验证插件

    下面我会为你详细讲解“拥有一个属于自己的JavaScript表单验证插件”的完整攻略,过程中也会提供两条示例说明。 1. 设计表单验证插件的要点 在设计表单验证插件之前,首先需要明确以下要点: 验证规则:确定验证规则,如必填项、最大长度、邮箱格式等。 错误提示:当输入错误时需要提供相应的错误提示,如“此项不能为空”、“长度不能超过10个字符”等。 验证方法:…

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