前言

最近真的都是在瞎学,看到自己不是很明白的东西,都喜欢自己手动去敲1到3遍(晚上下班的时候咯),

瞧,React  基于webpack 搭建,react 官方有一套手脚架工具,我自己也搭建过确实挺好使的,适合初学者学习学习。

但是自己还是想手动来搭建,嗯 于是写一篇不用手脚架搭建的博客,供自己加强记忆,哈哈哈 开始咯

创建项目目录

新建 react-webpack 项目

cd react-webpack

初始化 npm 环境

npm init   //一路回车

package.json 文件下 其实就是记录依赖相关的 加载库

{
"name": "react-webpack",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "yf",
"license": "ISC"
}

依赖安装

npm i  react -D

npm i   react-dom -D

npm i  webpack  -D

npm  i  webpack-cli -D  (因为webpak 到 4版本以上 就需要这个 ,不然会报错)

创建目录

创建 src ,build 2个目录

在 src 下创建 webpack 打包入口文件   index.js

在创建webpack 配置文件

const path = require('path') // 引入‘path’,为了在这里使用绝对路径,避免相对路径在不同系统时出现不必要的问题
const publicPath = '/'; module.exports = {
// 应用入口
entry: {
app: path.join(__dirname, '../src/index.js') // index.js作为打包的入口
},
// 输出目录
output: {
filename: '[name].[hash:8].js',//name代表entry对应的名字; hash代表 整个app打包完成后根据内容加上hash。一旦整个文件内容变更,hash就会变化
path: path.join(__dirname, '../dist'), // 打包好之后的输出路径
publicPath: publicPath, //态资源文件引用时的路径
},
};

修改package.json 下

添加如下代码:

    "build": "webpack --mode production"

需要引入 babel-loader 来编译 es6

npm i babel-core babel-loader babel-preset-env -D

npm install babel babel-cli  -D

npm install babel-preset-react  babel-preset-es2015 -D

{
test: /\.(js|jsx)$/, //使用loader的目标文件。这里是.js
use: {
loader: 'babel-loader',
options: {
presets: ["env", "react"] //['@babel/preset-react']
},
},
exclude: [
path.join(__dirname, '../node_modules') // 由于node_modules都是编译过的文件,这里我们不让babel去处理其下面的js文件
]
},

在项目根目录下创建 babel 的配置文件 .babelrc:

{
"presets": [
["es2015", {"loose": true}],
"react"
]
}

执行 npm run build

你的第一个打包就在dist 文件下了

在使用   html-webpack-plugin

webpack  可以根据你的配置生成你想要的文件 html

npm  i   html-webpack-plugin - D

const HTMLPlugin = require('html-webpack-plugin')

plugins: [
new HTMLPlugin({
filename: 'index.html', //制定的文件,默认
template:'index.html' //制定html生成使用的模板文件
}) // 生成一个html页面,同时在webpack编译的时候。把我们所生成的entry都注入到这个html页面中,路径都是根据我们output配置的来走的。 ]

在 你的 index.html ,写这样

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

写第一个 React 应用

import React from 'react';
import ReactDOM from 'react-dom'; export default class HelloReact extends React.Component{
constructor(props) {
super(props);
} render(){
return( <div>Hello React</div>);
}
} ReactDOM.render(<HelloReact />, document.getElementById('app'));

development 模式下启动服务器并实时刷新 webpack-dev-server

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

   "start": "webpack-dev-server --mode development --open",
"build": "webpack --mode development --config build/webpack.config.js"

在index.js 文件下引入

<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello React</title>
</head>
<body>
<div id="root"></div>
<script type="text/javascript" src="./main.e09b122c.js"></script>
</body>
</html>

然后再编译: npm run build

npm run start

用浏览器打开 //http://localhost:8080,就可以看到 Hello React 出现了

webpack 搭建React(手动搭建)的更多相关文章

  1. 基于webpack的React项目搭建(一)

    前言 工欲善其事,必先利其器.为了更好的学习React,我们先简要的把开发环境搭建起来.本文主要介绍使用webpack搭建React项目,如果你对React或es6的基础语法还不了解,建议先去学习学习 ...

  2. 基于webpack的React项目搭建(三)

    前言 搭建好前文的开发环境,已经可以进行开发.然而实际的项目中,不同环境有着不同的构建需求.这里就将开发环境和生产环境的配置单独提取出来,并做一些简单的优化. 分离不同环境公有配置 不同环境虽然有不同 ...

  3. 基于webpack的React项目搭建(二)

    前言 前面我们已经搭建了基础环境,现在将开发环境更完善一些. devtool 在开发的过程,我们会经常调试,so,为了方便我们在chrome中调试源代码,需要更改webpack.config.js,然 ...

  4. react手动搭建解析

    1.创建项目名<react-progect> ->项目文件下创建package.json文件 ->项目下执行命令:cnpm initcnpm i webpack webpack ...

  5. 基于webpack的react开发环境搭建新手教程

    最近学习react-webpack项目搭建,找到一篇我认为不错的博客,跟着学习了一番,写得很详细很好,本篇博客纯属记录总结,要看更详细的搭建过程及解析,请戳: 基于webpack的React项目搭建( ...

  6. 手动搭建的react环境中,关于图片引入的问题

    react手动搭建的环境,require引进来图片不显示,网页src显示[object module] 解决方案 (1)import引进图片 import anli from './img/anli. ...

  7. React 系列文章(1): npm 手动搭建React 运行实例 (新手必看)

    摘 要 刚接触React 开发, 在摸索中构建react 运行环境,总会遇到各种坑:本文,将用最短时间解决webpack+react 环境搭建问题. 1.如果你还没有React基础 看这里. 2.如果 ...

  8. 详解 Webpack+Babel+React 开发环境的搭建

    1.认识Webpack 构建应用前我们先来了解一下Webpack, Webpack是一个模块打包工具,能够把各种文件(例如:ReactJS.Babel.Coffeescript.Less/Sass等) ...

  9. 使用 webpack 搭建 React 项目

    简评:相信很多开发者在入门 react 的时候都是使用 create-react-app 或 react-slingshot 这些脚手架来快速创建应用,当有特殊需求,需要修改 eject 出来的 we ...

  10. react项目搭建及webpack配置

    1,配置webpack npm install -g webpack                       webpack的cli环境 npm install -g webpack-dev-se ...

随机推荐

  1. pureftp安装部署

    ftp:文件传输pure-ftpd:ftp软件作用:通过映射登录传送和接收文件.1.先下载pure-ftpd软件,最好指定一个下载软件目录如:/usr/local/src wget https://d ...

  2. 去除雨滴的滤镜 Derain in FFmpeg

    Remove the rain in the input image/video by applying the derain methods based on convolutional neura ...

  3. ffi模块——node调用动态链接库(.so/.dll文件)

    参考资料1:[https://www.npmjs.com/package/ffi] 参考资料2:[http://imweb.io/topic/57732fbef0a5487b05f325bf] 参考资 ...

  4. AGC035 B - Even Degrees【思维·树形结构的妙用】

    题目传送门 一句话题意: 首先,每一条边会产生1个入度,1个出度,因此,如果边的数量是奇数的话,图的所有节点的总出度就是奇数,不可能每个节点的出度都是偶数,因此无解. 有解时,我们先找出原图中的一棵生 ...

  5. Magic Potion(网络流)

    原题链接 2018南京的铜牌题,听说学长他们上来就A了,我这个图论选手也就上手做了做,结果一言难尽...... 发此篇博客希望自己能牢记自己的菜... 本题大意:有n个heros和m个monsters ...

  6. hugo搭建个人博客

    本地先安装git 1. 下载hugo,并配置好环境变量 我这里win7 64位,选择该版本下载 将解压后的hugo.exe,配置到环境变量中,如下图所示表明配置成功 hugo version 2. 生 ...

  7. Mysql 表空间和 数据页空洞

    一.表空间1.表空间: innodb 引擎存储的最高层: 存放所有的数据2.独立表空间:Mysql 版本 5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K :默认表空间 ...

  8. kafka 教程(四)-原理进阶

    kafka 最初由 Linkedin 公司开发,是一个 分布式.支持分区.多副本的,基于 zookeeper 协调的分布式发布订阅消息系统,该公司在 2010 年将 kafka 贡献给 apache ...

  9. 使用 tablib 来自动化管理测试用例,其他的工具都不用学了

    你在学习 python 自动化测试吗?听过 requests 库吗?tablib 是 requests 库作者常年维护的一个可以操作 Excel 等多种文件格式,将他们变成一种通用数据集的第三方库. ...

  10. npm学习(九)之README.md文件

    包括文档(readme.md) npm建议您包含一个readme文件来记录您的包.自述文件必须有文件名readme.md.文件扩展名.md表示该文件是一个标记(markdown)文件.当有人发现您的包 ...