用npm+webpack构建React

React+Webpack+babel项目搭建 React+Webpack+Babel项目搭建,适合新入坑的同学们学习。 立即下载

项目结构

项目结构

代码

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="index"></div>
    <!-- 测试打包后的注释是否还在 -->
    <script src="index.bundle.js" ></script>
</html>

========================================================================================
demo1.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div id="demo1"></div>
    <script src="demo1.bundle.js"></script>
</body>
</html>
index.js

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

ReactDOM.render(
    <h1>Hello React</h1>,
    document.getElementById("index")
)


=====================================================================================
demo1.jsx

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

ReactDOM.render(
    <h1>Hello React</h1>,
    document.getElementById("demo1")
)

webpack.config.js配置

var webpack = require('webpack');
var path = require('path');
//用于打包html文件 webpack本身无法打包html
var htmlWebpackPlugin = require('html-webpack-plugin');
//用于在构建前清除dist目录中的内容
const CleanWebpackPlugin = require('clean-webpack-plugin');

//打包html
function bundleHtml(x, y) {
  return new htmlWebpackPlugin({
    //指定要打包的html的文件 路径的默认前缀是context属性值 即__dirname + '/src' + x
    template: x,
    //指定输出路径和文件名 路径的默认前缀是output.path属性值 即__dirname + '/dist/' + y
    filename: y,
    //不在打包后的html中引入js
    inject: false,
    minify: {
      removeComments: true, //去掉注释
      // collapseWhitespace: true, //去掉空行
    }
  })
}
module.exports = {
  context: __dirname + '/src', //这里表示入口,__dirname表示当前目录
  entry: {
    demo1: "./demo1/demo1.jsx",
    react_ajax: "./react_ajax/react_ajax.jsx"
  }, //这里是入口文件
  mode: 'development', //这里表示开发模式,开发模式下webpack打包之后代码不压缩 默认为production
  devtool: 'source-map',// 控制台中可以查看源码 详情查看 https://mp.youkuaiyun.com/postedit/84205227
  module: {
    rules: [ //在webpack3+以上的版本使用rules
      {
        test: /(\.jsx|\.js)$/,
        exclude: /(node-modules)/,
        loader: 'babel-loader',
        query: {
          presets: ['react', 'es2015']
        }
      }
    ]
  },
  output: { //这里是出口
    path: __dirname + '/dist/', //出口文件夹 
    filename: '[name]/[name].bundle.js', //出口打包后的文件名
    publicPath: '/'
  },

  plugins: [
    //清除dist构建目录文件
    new CleanWebpackPlugin(['dist']),
    bundleHtml("./demo1/demo1.html", "demo1/demo1.html"),
    bundleHtml("./react_ajax/react_ajax.html", "react_ajax/react_ajax.html"),
  ],
  devServer: {
    contentBase: './dist',//本地服务器所加载的页面所在的目录
    historyApiFallback: true,//不跳转.
    inline: true
  }
}

package.json配置

点击链接查看webpack与webpack-dev-server的区别

{
  "name": "react_study",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --watch",
    "server": "webpack-dev-server --inline --hot --open"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "jquery": "^3.3.1",
    "react": "^16.6.3",
    "react-dom": "^16.6.3"
  },
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babelify": "^8.0.0",
    "clean-webpack-plugin": "^1.0.0",
    "html-webpack-plugin": "^3.2.0",
    "webpack": "^4.25.1",
    "webpack-cli": "^3.1.2",
    "webpack-dev-server": "^3.1.10"
  }
}
DFX从芯片到系统:可制造性、可测试性与可靠性设计实战指南 DFX(Design for eXcellence)是一套面向产品全生命周期的设计方法论,涵盖可制造性(DFM)、可测试性(DFT)、可靠性(DFR)等维度。其核心原理是将制造、测试、维护等环节的约束前置到设计阶段,从而降低流片与量产风险。在芯片与系统硬件领域,DFX不仅是提升良率与测试效率的关键手段,更是保障车规、工控等严苛场景下长期稳定运行的基础。从芯片物理实现到PCB布局,再到系统级散热与维护设计,DFX的落地需要工具链、流程闸门与跨部门协作的体系化支撑。本文基于实际项目经验,分享DFX从设计决策到工 阅读详情

相关推荐

BUUCTF逆向题Youngter-drive

其实线程一代码我自己也不大理解,看了正确的 flag 后,我自己推出来的是这样:在 couece 中取出字符,然后在 QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm 中找出一样的,取出该字符在 QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm 中的下标,如果取出的字符是大写则 在ASCII中找出【下标 - 38】值对应的字符替换couece中的字符,同理,小写就减 96。

于高山之巅,方见大河奔涌;于群峰之上,更觉长风浩荡。 1092

基于webpack从零开始自己配置react项目

每当自己想要用心写demo的时候,会发现项目开始之前的配置总是让我很烦,如果直接使用脚手架生成一个react项目,看起来方便,但是事实上一大堆配置文件很多都用不上或者看不懂,而且本身就是基于webpack实现的,但是它的配置文件并没有暴露出来,开发者也不知到它内置了哪些功能,哪些插件,非常难受,所以从零开始配置属于自己的webpack+react项目框架

vity_tong的博客 1331

电机控制实战:SVPWM五段式与七段式算法在STM32上的实现对比

本文深入对比了SVPWM五段式与七段式算法在STM32上的实现效果,详细分析了两种算法在占空比控制、开关损耗和波形质量等方面的差异。通过实测数据,为工程师提供了针对不同应用场景的选型建议,包括电池供电设备和高精度伺服控制系统的优化方案。

h6i7j8的博客 584

webpack npm打包配置(react版本)

1.安装node和npm,新建文件夹,在文件夹中执行npm init命令,一直回车生成一个package.json文件如下: { "name": "cobrandcard", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no ...

weixin_38208314的博客 1994

STM32 SAI接口TDM模式实战:8通道音频采集系统搭建全流程(附DMA配置代码)

本文详细介绍了基于STM32 SAI接口TDM模式搭建8通道音频采集系统的全流程。内容涵盖硬件连接设计、CubeMX时钟树与SAI外设的详细配置,并重点解析了TDM模式的核心代码实现与DMA双缓冲机制,提供了完整的配置代码和常见时序问题排查指南,助力开发者高效实现多通道音频传输与处理。

weixin_29192211的博客 505

【推荐100个unity插件之2】 DoTween动画插件的安装和使用整合(最全)

摘要:DOTween动画插件使用指南 DOTween是Unity中强大的动画插件,比原生动画更便捷。安装后需进行初始化设置,通过工具菜单生成程序集。主要提供通用方法(DOTween.To)和便捷方法(如transform.DOMove)两种动画实现方式。插件支持丰富的动画设置(循环、缓动等)和事件回调(OnComplete、OnKill)。还提供动画管理功能,包括清除(DOTween.Clear)、完成(DOTween.CompleteAll)和终止(DOTween.KillAll)动画。常用功能涵盖移动、

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1万+

使用NPM进行webpack+react 基础环境配置

使用NPM进行webpack+react 基础环境配置 最近学习react,所以环境配置就必不可少,下面是自己整理的属于自己的一种webpack+react基础环境配置 前提 在自己的机子上已经安装了node.js,如果没有,请先安装node.js,具体的操作可以百度。安装时注意自己的操作系统。 项目初始化 先用命令创建一个文件夹react(mkdir react),进入这个...

Snowliwj的博客 749

31、工程中不确定性量化与优化的全面解析

本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。

php55的博客 121

Webpack构建基本的React+ES6项目 --- 图片的路径与打包

webpack是最近比较火的构建工具,搭配上同样比较火的ReacJS与ES6(ES2015)一定是现在很多潮流 programmer 的追求。 废话不多,下面就就看下如何从0搭起我们的构建工具。  http://www.cnblogs.com/ghost-xyx/p/5812902.html 安装 全局安装webpack,如果安装后还是提示没有webpack commond,可以

大灰狼的小绵羊哥哥的博客 4204

30天入门 SAP BTP 开发系列之四:SAP BTP 控制台里 Global Account 的常规操作介绍

笔者前一篇文章,介绍了 SAP BTP 中 Global Account 的概念。本文咱们一起来看看 SAP BTP 控制台里,给 Global Account 开放了哪些操作功能。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 869

基于强化学习的多无人机路径规划

我们使用了Dueling Double Deep Q-Network(DDDQN)算法来训练智能体,这个算法在深度Q学习算法的基础上进行了升级,具有更快的收敛速度和更好的性能。本文提出了一种基于强化学习的算法,实现了多无人机路径规划,并提供相应的MATLAB代码。通过基于强化学习的多无人机路径规划算法,我们能够高效地解决复杂环境下的任务需求,并在实际应用中取得了良好的效果。首先,我们定义了状态空间和动作空间。实验结果表明,我们的方法能够有效地解决多无人机路径规划问题,提高了任务完成的效率和准确率。

DjjPython的博客 820

从零使用webpack, less, typescript, react 构建项目 自己的npm

🚩🚩🚩一开始使用React写项目都是直接npx create-react-app name但是要更好的理解npm包构建原理,能看懂别人的开源代码就要自己从头构建一个本文使用webpack, less, typescript, react 构建项目该项目为用hooks函数组件修改后的官方React教程中的井字棋。

Constantiny的博客 465

搭建自己的MQTT服务器,实现设备上云(Ubuntu+EMQX)

这篇文章教大家在ECS云服务器上部署EMQX,搭建自己私有的MQTT服务器,配置EMQX实现设备上云,设备数据转发,存储;服务器我采用的华为云的ECS服务器,系统选择Ubuntu系统。

2万+

【亲测免费】 使用Python、NPM、Webpack和React构建全栈Web应用

使用Python、NPM、Webpack和React构建全栈Web应用 在这个开源项目中,我们将学习如何利用当今流行的Web技术——包括NPM、Webpack、React和Python——来构建一个基础的全栈Web应用程序。通过这个项目,你不仅可以巩固前端与后端的知识,还能体验现代Web开发流程。 一起动手搭建! 在我的博客上,你可以找到从零开始构建该应用的详细步骤。这个项目包含了逐步指导,无论你...

gitblog_00036的博客 437

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

React-Magic 构建与部署全解析:gulp + webpack 工具链如何发布npm包和GitHub Pages

React-Magic 是一个用 React 让普通 HTML 页面"自动 AJAX 化"的实验性库——只需一行 `<script>` 标签,点击链接和提交表单就不再整页刷新。除了魔法本身,它背后还藏着一套经典的 **gulp + webpack 构建工具链**:既能把代码打包成浏览器可直接引用的 UMD 文件、发布演示站,又能构建并推送 npm 包。本文带你完整拆解这条从"写代码"到"发 npm

gitblog_00139的博客 4

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

从零开始构建前端和reactjs - 0

从零开始构建前端和reactjs前端半路出家,很多都是新概念,只能一步一步来搭建这个,资料全部都来源于网上开始吧 首先 ,nodejs 、git,怎么安装 ,自己百度吧。 1.安装好这些之后 ,打开window powershell,输入npm install -g cnpm --registry=https://registry.npm.taobao.org切换npm到淘宝的源,2.上https

qq_33241273的博客 420

D1.1.利用npm(webpack)构建基本reactJS项目

前提: 已经安装nodejs和npm #全局安装webpack 自动构建化工具,职能管理项目;webpack-dev-server是开发工具,提供 Hot Module Replacement 功能# webpack 介绍:http://webpack.github.io/docs/what-is-webpack.html npm install -g webpack webpack-de...

weixin_33862041的博客 76

构建pre_使用Webpack构建React与TypeScript开发环境

创建一个新的项目我们从一个新的项目开始,首先创建这个项目mkdir project cd project之后使用 npm 初始化该项目npm init该指令会让你依次输入 npm 包的的相关信息,也可以使用npm init -Y该命令会默认填写 npm 包的相关信息安装依赖首先安装 Webpacknpm install --save-dev webpack webpack-cli之后安装 Reac...

weixin_39844284的博客 112

ReactJS 101部署指南:从开发到生产的完整CI/CD流程

ReactJS 101项目是一个全面的React学习资源,本指南将带你了解如何从开发环境到生产环境搭建完整的CI/CD流程,实现React应用的自动化部署。通过这套流程,你可以轻松管理React项目的构建、测试和发布,提高开发效率和代码质量。 ## 🚀 准备工作:环境配置与项目初始化 在开始CI/CD流程之前,首先需要确保本地开发环境已正确配置。你需要安装Node.js和npm,然后通过以下

gitblog_01175的博客 445

React组件库脚手架:快速构建你的NPM包

React组件库脚手架:快速构建你的NPM包 项目介绍 你是否曾经为构建一个React组件库而感到困扰?是否在寻找一个简单、易用的脚手架来快速启动你的项目?那么,这个React组件库脚手架正是你所需要的! 这个项目提供了一个简洁的脚手架,帮助你快速构建一个React组件库,并将其发布到NPM上。无论是构建一个下拉菜单、切换开关,还是其他任何类型的UI组件,这个脚手架都能为你提供一个良好的起点。 项...

gitblog_01008的博客 418

React学习笔记000-使用webpack自定义搭建React环境

React官网 Web编程环境体验推荐两个 codesandbox 和 stackblitz 最新直访url(当前版本React18): https://codesandbox.io/s/react-new https://stackblitz.com/edit/react-ts-rwegse 除了传统的create-react-app脚手架的方式,现尝试使用webpack构建react项目(实际脚手架创建的项目内置了webpack),这样自己手动构建一遍方便知道细节。 1.创建一个空目录we

renaway的博客 721

webpack——react

这里记录了webpack在react中的简单运用 npx create-react-app 项目名 创建一个新项目 npm run build serve -s build 转载于:https://www.cnblogs.com/ellen-mylife/p/10702414.html...

weixin_30781775的博客 77

构建React项目

React项目构建 1.先建立一个文件夹,然后初始化npm init,生成package.json文件; 2.安装webpack相关插件npm install webpack webpack-cli webpack-dev-server webpack-merge ,其中,webpack-cli是webpack的命令工具,既然安装webpack,就必要安装这个,webpack-dev-serv...

DFmoon 715

《React+Redux前端开发实战》笔记3:基于Webpack构建的Hello World案例(下)

2.使用React编码 下面正式开始使用React来编写前端代码。 (1)npm安装react和react-dom: npm install react react-dom -S (2)用下面代码替换./src/index.jsx中的console: import React from 'react'; import { render } from 'react-dom'; cl...

cui_1234的专栏 589

React+Vite学习第一次笔记

npm是node包管理工具,而npx是包的执行器。Node 的执行也可以 NPM 来完成,但是必须进行本地安装,通过定位本地路径或者配置 scripts 才能执行。NPX则可以直接运行尚未安装的 npm 包,它会将 Node 包下载到一个临时目录中,使用以后再删除。

qq_50658892的博客 1415

React 学习路线

以下所谈及的,就是为你定制的 React 学习路线。 为了能稳固基础,我们一定要逐步地来进行学习。 倘若你正在建造一间房子,那么为了能快点完成,你是否会跳过建造过程中的部分步骤?如在具体建设前先铺设好部分石头?或直接在一块裸露的土地上先建立起墙面? 又假如你是在堆砌一个结婚蛋糕:能因为上半部分装饰起来更有趣,而直接忽略了下半部分? 不行吗? 当然不行。众所周知,这些做法只会导致失败。 因此,不要想着通过接触 React 来将 ES6 + Webpack + Babel + React + Routing +

weixin_43924896的博客 1798
上一篇: 调试ES6代码
下一篇: js中获取后台properties文件中的值
My_Java_Life
博客等级 码龄11年 39粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值