首页 > 其他分享 >如果不使用脚手架,如果用webpack构建一个自己的react应用

如果不使用脚手架,如果用webpack构建一个自己的react应用

时间:2025-01-01 18:40:50浏览次数:6  
标签:React 文件 babel loader react webpack 脚手架

以下是使用Webpack构建一个自己的React应用的基本步骤:

1. 项目初始化

首先创建一个项目文件夹,并在其中初始化package.json文件(用于管理项目的依赖和脚本等),打开命令行,进入项目文件夹,执行以下命令:

mkdir my-react-app
cd my-react-app
npm init -y

2. 安装必要的依赖

需要安装React、React DOM以及Webpack相关的核心库和一些必要的加载器(loader)等。

npm install react react-dom webpack webpack-cli webpack-dev-server html-webpack-plugin @babel/core @babel/preset-env @babel/preset-react babel-loader css-loader style-loader --save-dev
  • reactreact-dom:React核心库和用于操作DOM的库。
  • webpackwebpack-cli:构建工具及其命令行界面,用于打包项目。
  • webpack-dev-server:提供一个开发服务器,方便在开发过程中实时查看效果,热更新等。
  • html-webpack-plugin:用于自动生成HTML文件,并将打包后的JavaScript等资源引入到HTML中。
  • @babel/core@babel/preset-env@babel/preset-reactbabel-loader:用于将ES6+代码(包括React的JSX语法)转换为浏览器能够识别的JavaScript代码,通过Babel进行转译。
  • css-loaderstyle-loader:用于处理CSS文件,css-loader解析CSS文件中的@importurl()等,style-loader将解析后的CSS样式注入到页面中。

3. 配置Webpack

在项目根目录下创建webpack.config.js文件,用于配置Webpack的各项参数,示例配置如下:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  mode: 'development', // 开发模式,还可以设置为'production'用于生产环境打包
  entry: './src/index.js', // 项目入口文件,后续所有依赖会从这里开始分析和打包
  output: {
    path: path.resolve(__dirname, 'dist'), // 打包后的文件输出目录
    filename: 'main.js' // 输出的主文件名
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/, // 处理.js和.jsx文件
        exclude: /node_modules/, // 排除node_modules文件夹中的文件,不进行转译处理
        use: {
          loader: 'babel-loader',
          options: {
            presets: [
              '@babel/preset-env',
              '@babel/preset-react'
            ]
          }
        }
      },
      {
        test: /\.css$/, // 处理CSS文件
        use: [
          'style-loader',
          'css-loader'
        ]
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html', // 指定HTML模板文件,会基于这个文件生成最终的HTML
      inject: 'body' // 将打包后的JavaScript文件注入到HTML的body标签内
    })
  ],
  devServer: {
    contentBase: path.join(__dirname, 'dist'), // 开发服务器的根目录,指向打包输出目录
    port: 3000, // 服务器监听的端口号
    open: true // 启动服务器时自动打开浏览器访问应用
  }
};

4. 创建项目文件

  • 在项目根目录下创建src文件夹,里面包含以下几个关键文件:

    • index.html:作为HTML模板文件,示例如下:
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>My React App</title>
    </head>
    <body>
      <div id="root"></div>
    </body>
    </html>
    
    • index.js:这是项目的入口JavaScript文件,在这里引入React并渲染组件到页面上,示例如下:
    import React from 'react';
    import ReactDOM from 'react-dom';
    import App from './App'; // 假设后续会创建App组件
    
    ReactDOM.render(
      <App />,
      document.getElementById('root')
    );
    
    • App.js:一个简单的React组件文件,示例如下:
    import React from 'react';
    
    const App = () => {
      return (
        <div>
          <h1>Hello, React App!</h1>
        </div>
      );
    };
    
    export default App;
    

5. 运行项目

在命令行中执行以下命令来启动开发服务器,Webpack会根据配置进行打包,并在浏览器中打开应用:

npx webpack-dev-server

如果后续想要进行生产环境的打包,可以执行以下命令(会根据webpack.config.js中的mode配置为production时的相关设置进行打包):

npx webpack

通过以上步骤,就可以在不使用脚手架的情况下,利用Webpack构建一个简单的React应用,在开发过程中可以不断扩展组件、添加功能以及完善样式等。

标签:React,文件,babel,loader,react,webpack,脚手架
From: https://www.cnblogs.com/zsnhweb/p/18646179

相关文章

  • React 19 深度剖析:从架构升级到性能优化
    React19深度剖析:从架构升级到性能优化目录React19架构升级新特性深度解析性能优化最佳实践高级功能应用工程化实践迁移策略实战案例常见问题解决1.React19架构升级1.1新一代并发渲染引擎React19采用全新的并发渲染架构,显著提升了应用性能://新的并发模式配......
  • 请说说webpack的热更新原理
    Webpack的热更新原理主要基于模块热替换(HotModuleReplacement,简称HMR)实现,这是一种在不重新加载整个页面的情况下,动态替换页面中部分模块的技术。以下是Webpack热更新原理的详细解释:文件监听:Webpack通过内置的文件系统监听器,实时监测项目文件的变动。当开发者修改了源代码并保......
  • 请说说webpack的模块加载原理
    Webpack的模块加载原理是Webpack作为前端模块化打包工具的核心机制之一,它允许Web应用将各种资源视为模块,并通过特定的加载机制来组织和打包这些模块。以下是Webpack模块加载原理的详细解释:初始化:Webpack首先会读取配置文件(通常是webpack.config.js),从中获取项目的入口文件、输出......
  • 如何减少Webpack的打包体积?
    减少Webpack的打包体积是前端开发中常见的优化手段,旨在提高应用的加载速度和性能。以下是一些有效的方法来减少Webpack的打包体积:提取第三方库:将第三方库单独打包,并通过CDN引入。这样不仅可以减少打包体积,还能利用CDN的缓存优势来提高加载速度。例如,vue、vue-router、vuex、el......
  • Vue-cli脚手架安装介绍
    1、安装Vue-cli可以使用npm或cnpm安装vue-cli项目构想工具#添加国内淘宝镜像加速sudonpmconfigsetregistryhttps://registry.npmmirror.com/sudonpminstall-g@vue/cli或使用#添加国内淘宝镜像加速sudonpminstall-gcnpm--registryhttps://registry.npmmirr......
  • 深入理解 React 中的状态管理:Context API 与 Redux 的对比
    深入理解React中的状态管理:ContextAPI与Redux的对比目录前言React状态管理概述2.1.什么是状态管理?2.2.为什么需要状态管理?React的状态管理方式3.1.组件内部状态3.2.ReactContextAPI3.3.Redux状态管理ReactContextAPI深入解析4.1.Context的基......
  • React CountUp
    ReactCountUp     AconfigurableReactcomponentwrapperaround CountUp.js.Click here toviewonCodeSandbox.Previousdocsv3.xv4.xv5.xTableofContentsInstallationUsageSimpleexampleRenderpropexampleMoreexamplesManually......
  • React Blocks
    ReactBlocksJustthelayout,nomore,noless.Reactblocksusesa declarativeapproach tobuildcomplexlayoutsontopofCSSFlexbox.Flexboxpropertiesareexposedasattributesonahigher-levelreactcomponent.Supportsmedia-queriesviapredefined m......
  • 【WEB安全】利用shuji还原webpack打包源码
    一、前言二、webpack简介三、怎么确定是webpack打包站点呢四、shuji(周氏)配置4.1安装nodejs环境4.2安装shuji工具4.3.js.map文件存放位置4.4运行shuji反编译.js.map文件获取源码4.5代码审计五、实战记录免责声明本公众号所分享内容仅用......
  • 2025年React前端路线图:从初级到高级
    2025年React前端路线图:从初级到高级原文链接:2025ReactFrontendRoadmap:BeginnertoSeniorLevel作者:tak089译者:倔强青铜三前言大家好,我是倔强青铜三。是一名热情的软件工程师,我热衷于分享和传播IT技术,致力于通过我的知识和技能推动技术交流与创新,欢迎关注我,微信公......