1.快速創建React項目
npm install -g create-react-app // 全局安裝create-react-app (只需要安裝一次) create-react-app demo // 創建項目 cd demo // 進入項目目錄
注意,Create React App requires Node 14 or higher.需要安裝高版本的node。
創建的項目目錄結構
-Demo // 項目名 -node_modules // 存放第三方包 -public -favicon.ico -index.html -manifest.json -src // 頁面代碼都寫在這下面 -App.css -App.js -App.test.js -index.css -index.js //項目入口 -logo.svg -serviceWorker.js -setupTest.js .gitignore package.json README.md yarn.lock
2.安裝所需包
由於package.json里包含react和react-dom,已經默認安裝了,我們安裝UI框架ant design即可。
npm i --save antd
安裝webpack的兩個基本項
npm i webpack webpack-cli --save-dev
安裝webpack
npm i -D webpack
安裝webpack服務器 webpack-dev-server,讓啟動更方便
npm i --save-dev webpack-dev-server
自動創建html文件 html-webpack-plugin
npm i --save-dev html-webpack-plugin
清除無用文件 clean-webpack-plugin,將每次打包多余的文件刪除
npm i --save-dev clean-webpack-plugin
樣式編譯loader插件
npm i --save-dev style-loader css-loader // css相關loader npm i --save-dev node-sass sass-loader // scss 相關loader npm i --save-dev file-loader url-loader // 加載其他文件,比如圖片,字體
安裝babel
npm i --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react @babel/plugin-proposal-class-properties npm i --save @babel/polyfill npm i --save-dev babel-loader
3.根目錄創建webpack.config.js文件,代碼如下
const path = require('path');
const webpack = require('webpack');
const HtmlPlugin = require('html-webpack-plugin');
module.exports = {
devtool: 'inline-source-map',
entry: {
index: './src/index.js'
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'build')
},
module: {
rules: [{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}, {
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader']
}, {
test: /\.(png|svg|jpg|gif)$/,
loader: 'url-loader',
options: {
limit: 10000,
name: 'img/[name].[hash:7].[ext]'
}
}, {
test: /\.(js|jsx)$/,
use: 'babel-loader',
exclude: /node_modules/
}]
},
devServer: {
// contentBase: './build',
port: 8081, // 端口號
// inline: true,
hot: true
},
plugins: [
new webpack.HotModuleReplacementPlugin(),
new HtmlPlugin({
template: 'public/index.html'
})
]
}
4.在根目錄下添加文件 .babelrc,代碼如下
{ "presets": [ "@babel/preset-env", "@babel/preset-react" ], "plugins": [ "@babel/plugin-proposal-class-properties" ] }
5.修改 package.json
"scripts": { "start": "webpack-dev-server --open --mode production", "watch": "webpack --watch", "build": "webpack --mode production", "dev": "webpack --mode development& webpack-dev-server --open --mode development", "test": "react-scripts test", "eject": "react-scripts eject" },
6.修改public/index.html文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>demo</title> </head> <body> <div id="root"></div> </body> </html>
7.修改src/index.js文件
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; ReactDOM.render( <App />, document.getElementById('root') );
8.修改src/App.js文件
import React, { Component } from 'react';
import './App.css'; // 引入樣式文件
class App extends Component {
constructor(props) {
super(props);
this.state = {};
}
render() {
return (
<div className="main">
<div>我是首頁</div>
</div>
);
}
}
export default App;
9.修改 src/App.css文件
.main { background: darkgray; width: 500px; height: 500px; margin: 0 auto; }
10.在項目根目錄下執行
npm run dev
