快速创建React项目并配置webpack

 更新时间:2022年01月13日 16:30:15   作者:罗毅豪  
这篇文章主要介绍了创建React项目并配置webpack,在这里需要注意,Create React App requires Node 14 or higher.需要安装高版本的node,本文给大家介绍的非常详细,需要的朋友参考下吧

1.快速创建React项目

npm install -g create-react-app // 全局安装create-react-app (只需要安装一次)
create-react-app demo // 创建项目
cd demo // 进入项目目录

注意,Create React App requires Node 14 or higher.需要安装高版本的node。

创建的项目目录结构

-Demo // 项目名
  -node_modules // 存放第三方包
  -public
    -favicon.ico
    -index.html
    -manifest.json
  -src // 页面代码都写在这下面
    -App.css
    -App.js
    -App.test.js
    -index.css
    -index.js //项目入口
    -logo.svg
    -serviceWorker.js
    -setupTest.js
.gitignore
package.json
README.md
yarn.lock

2.安装所需包

由于package.json里包含react和react-dom,已经默认安装了,我们安装UI框架ant design即可。

npm i --save antd

安装webpack的两个基本项

npm i webpack webpack-cli --save-dev

安装webpack

npm i -D webpack 

安装webpack服务器 webpack-dev-server,让启动更方便

npm i --save-dev webpack-dev-server

自动创建html文件 html-webpack-plugin

npm i --save-dev  html-webpack-plugin

清除无用文件 clean-webpack-plugin,将每次打包多余的文件删除

npm i --save-dev clean-webpack-plugin

样式编译loader插件

npm i --save-dev style-loader css-loader  // css相关loader
npm i --save-dev node-sass sass-loader  // scss 相关loader
npm i --save-dev file-loader url-loader // 加载其他文件,比如图片,字体

安装babel

npm i --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react  @babel/plugin-proposal-class-properties
npm i --save @babel/polyfill
npm i --save-dev babel-loader

3.根目录创建webpack.config.js文件,代码如下

const path = require('path');
const webpack = require('webpack');
const HtmlPlugin = require('html-webpack-plugin');
module.exports = {
    devtool: 'inline-source-map',
    entry: {
        index: './src/index.js'
    },
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, 'build')
    },
    module: {
        rules: [{
            test: /\.css$/,
            use: ['style-loader', 'css-loader']
        }, {
            test: /\.scss$/,
            use: ['style-loader', 'css-loader', 'sass-loader']
        }, {
            test: /\.(png|svg|jpg|gif)$/,
            loader: 'url-loader',
            options: {
                limit: 10000,
                name: 'img/[name].[hash:7].[ext]'
            }
        }, {
            test: /\.(js|jsx)$/,
            use: 'babel-loader',
            exclude: /node_modules/
        }]
    },
    devServer: {
        // contentBase: './build',
        port: 8081, // 端口号
        // inline: true,
        hot: true
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new HtmlPlugin({
            template: 'public/index.html'
        })
    ]
}

4.在根目录下添加文件 .babelrc,代码如下

{
  "presets": [
      "@babel/preset-env",
      "@babel/preset-react"
  ],
  "plugins": [
      "@babel/plugin-proposal-class-properties"
  ]
}

5.修改 package.json

"scripts": {
    "start": "webpack-dev-server --open --mode production",
    "watch": "webpack --watch",
    "build": "webpack --mode production",
    "dev": "webpack  --mode development& webpack-dev-server --open  --mode development",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
},

6.修改public/index.html文件

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <title>demo</title>
  </head>
  <body>
      <div id="root"></div>
  </body>
</html>

7.修改src/index.js文件

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

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

8.修改src/App.js文件

import React, { Component } from 'react';
import './App.css';  // 引入样式文件
class App extends Component {
  constructor(props) {
    super(props);
    this.state = {};
  }
  render() {
    return (
      <div className="main">
        <div>我是首页</div>
      </div>
    );
  }
}
export default App;

9.修改 src/App.css文件

.main {
  background: darkgray;
  width: 500px;
  height: 500px;
  margin: 0 auto;
}

10.在项目根目录下执行

npm run dev

到此这篇关于创建React项目并配置webpack的文章就介绍到这了,更多相关创建React配置webpack内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • react如何获取state的值并更新使用

    react如何获取state的值并更新使用

    这篇文章主要介绍了react如何获取state的值并更新使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • react的严格模式和解决react useEffect执行两次问题

    react的严格模式和解决react useEffect执行两次问题

    文章总结:本文详细探讨了React中useEffect执行两次的问题,主要归因于React的严格模式,严格模式在开发模式下会故意重复调用一些生命周期方法,以帮助开发者发现潜在的问题,包括不安全的生命周期、过时的ref API、废弃的findDOMNode方法、意外的副作用等
    2025-01-01
  • React前端框架实现原理的理解

    React前端框架实现原理的理解

    React是前端开发每天都用的前端框架,自然要深入掌握它的原理。我用 React 也挺久了,这篇文章就来总结一下我对 react 原理的理解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-07-07
  • 详解React中的setState执行机制

    详解React中的setState执行机制

    setState是React组件中用于更新状态的方法,是类组件中的方法,用于更新组件的状态并重新渲染组件,本文给大家详细介绍了React中的setState执行机制,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • react 原生实现头像滚动播放的示例

    react 原生实现头像滚动播放的示例

    这篇文章主要介绍了react 原生实现头像滚动播放的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 引入代码检查工具stylelint实战问题经验总结分享

    引入代码检查工具stylelint实战问题经验总结分享

    eslint的配置引入比较简单,网上有比较多的教程,而stylelint的教程大多语焉不详。在这里,我会介绍一下我在引入stylelint所遇到的坑,以及解决方法
    2021-11-11
  • React router cache route实现缓存页面流程介绍

    React router cache route实现缓存页面流程介绍

    react-router自身没有路由缓存的特性,在5.x版本之前,我们可以基于react-router-cache-route来实现路由缓存功能。但是react-router 6.x在实现上做了比较大的变化,react-router-cache-route没有提供相应的支持
    2023-01-01
  • Zustand介绍与使用 React状态管理工具的解决方案

    Zustand介绍与使用 React状态管理工具的解决方案

    本文主要介绍了Zustand,一种基于React的状态管理库,Zustand以简洁易用、灵活性高及最小化原则等特点脱颖而出,旨在提供简单而强大的状态管理功能
    2024-10-10
  • react组件基本用法示例小结

    react组件基本用法示例小结

    这篇文章主要介绍了react组件基本用法,结合实例形式分析了react组件传值、生命周期、受控组件和非受控组件等相关操作技巧,需要的朋友可以参考下
    2020-04-04
  • 详解React Native顶|底部导航使用小技巧

    详解React Native顶|底部导航使用小技巧

    本篇文章主要介绍了详解React Native顶|底部导航使用小技巧 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论