webpack4.X + react搭建
2024-09-07 17:25:54
环境准备工作:windows7、webStorm 2017.1.4、Nodejs 8.7.0、npm 5.4.2
PS:安装的时我们都带上版本,这样即便webpack版本发生变化,也不会出现版本问题。
初始化package.json文件
npm init
npm安装react、react-dom包
npm install react@16.3.0 react-dom@16.3.0 --save
或者
npm i -S react@16.3.0 react-dom@16.3.0
npm安装webpack、webpack-cli等包
npm install webpack@4.4.1 webpack-cli@2.0.13 webpack-dev-server@3.1.1 webpack-merge@4.1.2 babel-cli@6.26.0 babel-preset-env@1.6.1 babel-preset-react@6.24.1 babel-preset-react-hmre@1.1.1 babel-loader@7.1.4 --save-dev
或者
npm i -D webpack@4.4.1 webpack-cli@2.0.13 webpack-dev-server@3.1.1 webpack-merge@4.1.2 babel-cli@6.26.0 babel-preset-env@1.6.1 babel-preset-react@6.24.1 babel-preset-react-hmre@1.1.1 babel-loader@7.1.4
文件夹结构
各个文件的内容
Index.jsx
import React from 'react'; class Index extends React.Component {
render() {
return (
<div>
这是首页women修改一下
</div>
);
}
} export default Index;
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Index from './views/Index'; ReactDOM.render(<Index/>, document.getElementById('app'));
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="telephone=no" name="format-detection">
<title>react</title>
</head>
<body>
<div id="app"></div>
<script type=text/javascript src=js/index.js></script>
</body>
</html>
base.config.js
let config = {
entry: {
'index':'./src/index.js'
},
resolve: {
extensions: [".js", ".json", ".jsx", ".css"],
}
}; module.exports = config;
dev.config.js
const webpack = require('webpack');//引入webpack
const opn = require('opn');//打开浏览器
const merge = require('webpack-merge');//webpack配置文件合并
const path = require("path");
const baseWebpackConfig = require("./base.config");//基础配置
const webpackFile = require("./file.config");//一些路径配置 let config = merge(baseWebpackConfig, {
/*设置开发环境*/
mode: 'development',
output: {
path: path.resolve(webpackFile.devDirectory),
filename: 'js/[name].js',
chunkFilename: "js/[name].js",
publicPath: ''
},
plugins: [
/*设置热更新*/
new webpack.HotModuleReplacementPlugin(),
],
module: {
rules: [
{
test: /\.(js|jsx)$/,
use: [
'babel-loader',
],
include: [
path.resolve(__dirname, "../src")
],
exclude: [
path.resolve(__dirname, "../node_modules")
],
} ]
},
/*设置api转发*/
devServer: {
host: '0.0.0.0',
port: 8080,
hot: true,
inline: true,
contentBase: path.resolve(webpackFile.devDirectory),
historyApiFallback: true,
disableHostCheck: true,
proxy: [
{
context: ['/api/**', '/u/**'],
target: 'http://127.0.0.1:8080/',
secure: false
}
],
/*打开浏览器 并打开本项目网址*/
after() {
opn('http://localhost:' + this.port);
}
}
});
module.exports = config;
file.config.js
module.exports = {
devDirectory:'static',/*开发目录*/
proDirectory:'dist',/*发布目录*/
resource:'resource',/*静态资源*/
};
package.json文件中添加脚本命令
"dev": "webpack-dev-server --devtool eval --progress --colors --profile --config webpack/dev.config.js"
最后执行运行命令
效果图
代码地址:https://github.com/yangbiaoit/react-webpack
最新文章
- Java 二叉树遍历右视图-LeetCode199
- PyVISA介绍
- 从零教你如何获取hadoop2.4源码并使用eclipse关联hadoop2.4源码
- QT 事件过滤器 eventFilter
- Java_Web学习笔记_过滤器应用案例(解决全站字符乱码)
- 如何使用 Python 创建一个 NBA 得分图?
- html02表格的使用
- python3下GUI界面设计之控件精确定位
- LeetCode算法题-Delete Node in a Linked List(Java实现)
- 可遇不可求的Question之skip-name-resolve模式篇
- java 反射 子类泛型的class
- Hacker学习发展流程图
- 乘风破浪:LeetCode真题_027_Remove Element
- [!] CocoaPods could not find compatible versions for pod ";Folly";问题举例
- Android O 可以上网 提示无法访问网络
- 项目发布脚本-go
- 填格子3*N的方框使用2*1的矩形进行填充
- MarkChanges: Jmeter
- PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)
- 使用System.IO.Combine(string path1, string path2, string path3)四个参数的重载函数提示`System.IO.Path.Combine(string, string, string, string)&#39; is inaccessible due to its protection level
热门文章
- 高性能可扩展mysql 笔记(五)商品实体、订单实体、DB规划
- Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
- Java实现 蓝桥杯 算法提高 复数四则运算
- Java实现蓝桥杯 算法训练 Professor Monotonic's Network
- Java实现 蓝桥杯VIP 算法提高 盾神与砝码称重
- Python之Flask框架二
- transport方式连接Elasticsearch6.2.3
- go mod 与单元测试
- [原创][开源] SunnyUI.Net 安装
- mtail 调试