1. 建立項目結(jié)構(gòu)
-- your project
|-- dist(項目輸出打包目錄)
|-- src(項目源代碼)
|-- index.js
|-- webpack.config.js
|-- package.json
2. 安裝項目依賴
// 安裝 react
npm install react react-dom --save-dev
// 安裝 webpack
npm install webpack --save
npm install webpack-cli --save
npm install webpack-dev-server --save
// 安裝 babel
npm install @babel/core --save
npm install @babel/preset-env --save
npm install @babel/preset-react --save
// 安裝支持 jsx 的插件
npm install babel-loader --save
// 安裝 webpack 插件
npm install html-webpack-plugin --save
npm install clean-webpack-plugin --save
3. 建立 .babelrc 文件
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}
4. 配置 webpack.config.js
const path = require('path')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CleanWebpackPlugin = require('clean-webpack-plugin')
module.exports = {
mode: 'development', // 開發(fā)模式(development)或生產(chǎn)模式(production)
entry: { // 入口文件
index: './src/index.js'
},
output: { // 出口文件
publicPath: '/', // 解決單頁面應用刷新404的問題,原因還在繼續(xù)研究中。。。
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist') // 確保為絕對路徑
},
devServer: { // 配置本地服務器環(huán)境
contentBase: path.join(__dirname, 'src'), // 目錄
host: 'localhost', // 域名
port: 3000, // 端口號
open: true, // 自動打開瀏覽器
hot: true, // 是否啟動熱更新
historyApiFallback: true, // 解決單頁面應用刷新404的問題,原因還在繼續(xù)研究中。。。
},
module: { // 配置 loader
rules: [
{
test: /\.(js|jsx)/,
use: ['babel-loader'],
exclude: /node_modules/
}
]
},
plugins: [ // 配置插件
new webpack.HotModuleReplacementPlugin(), // 與熱更新一起使用
new HtmlWebpackPlugin({ // 打包后的模板插件配置
filename: 'index.html', // 生成 HTML 文件的名稱
chunks: ['index'], // 引入 js 文件的名稱(就是 entry 中的 key 值)
minify: { // 壓縮頁面資源
collapseWhitespace: true, // 壓縮空格
},
template: path.resolve(__dirname, 'src/index.html'), // 模板的路徑
hash: true // 消除緩存
}),
new CleanWebpackPlugin(), // 每次打包前清除上一次打包的文件
]
}
5. 修改 package.json 文件
"scripts": {
"dev": "webpack-dev-server",
"build": "webpack"
}
6. 在 src 文件夾下的 index.js 文件中輸入如下代碼
import React from 'react'
import ReactDOM from 'react-dom'
const App = () => {
return <h1>Hello World</h1>
}
ReactDOM.render(
<App></App>,
document.getElementById('root')
);
7. 在根目錄中啟動命令行輸入 npm run dev 即可運行成功
最后編輯于 :
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。