以下是使用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
将该组件渲染到 id
为 root
的元素中。
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技术站