webpack + react
安装react插件
npm install -s react react-dom react-router redux
安装各种编译用插件
npm install -d @babel/core @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react @babel/runtime
npm install -s babel-loader css-loader file-loader less less-loader style-loader url-loader
添加打包构建规则
rules:[
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.css$/,
use:[
{ loader: 'style-loader' },
{ loader: 'css-loader' },
]
},
{
test: /\.less$/,
use: [
{loader: 'style-loader', },
{loader: 'css-loader',},
{loader: 'less-loader'},
],
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'static/img/[name].[hash:7].[ext]'
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'static/fonts/[name].[hash:7].[ext]'
}
}
]
编写页面文件测试
import React from 'react'
import ReactDom from 'react-dom'
class App extends React.Component {
render() {
return (
<div style={{ color: "#333" }} className="test test2">
<input />
</div>
)
}
}
ReactDom.render(<App />, document.getElementById('app'))
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>react demo</title>
</head>
<body>
<div id="app">
</div>
</body>
</html>