环境准备工作: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

最新文章

  1. Java 二叉树遍历右视图-LeetCode199
  2. PyVISA介绍
  3. 从零教你如何获取hadoop2.4源码并使用eclipse关联hadoop2.4源码
  4. QT 事件过滤器 eventFilter
  5. Java_Web学习笔记_过滤器应用案例(解决全站字符乱码)
  6. 如何使用 Python 创建一个 NBA 得分图?
  7. html02表格的使用
  8. python3下GUI界面设计之控件精确定位
  9. LeetCode算法题-Delete Node in a Linked List(Java实现)
  10. 可遇不可求的Question之skip-name-resolve模式篇
  11. java 反射 子类泛型的class
  12. Hacker学习发展流程图
  13. 乘风破浪:LeetCode真题_027_Remove Element
  14. [!] CocoaPods could not find compatible versions for pod &quot;Folly&quot;问题举例
  15. Android O 可以上网 提示无法访问网络
  16. 项目发布脚本-go
  17. 填格子3*N的方框使用2*1的矩形进行填充
  18. MarkChanges: Jmeter
  19. PGM学习之六 从有向无环图(DAG)到贝叶斯网络(Bayesian Networks)
  20. 使用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

热门文章

  1. 高性能可扩展mysql 笔记(五)商品实体、订单实体、DB规划
  2. Java实现 LeetCode 672 灯泡开关 Ⅱ(数学思路问题)
  3. Java实现 蓝桥杯 算法提高 复数四则运算
  4. Java实现蓝桥杯 算法训练 Professor Monotonic's Network
  5. Java实现 蓝桥杯VIP 算法提高 盾神与砝码称重
  6. Python之Flask框架二
  7. transport方式连接Elasticsearch6.2.3
  8. go mod 与单元测试
  9. [原创][开源] SunnyUI.Net 安装
  10. mtail 调试