詳解基于webpack搭建react運(yùn)行環(huán)境
最近由于項(xiàng)目需要,所以嘗試使用webpack搭建react運(yùn)行環(huán)境,在克服了一系列困難后,終于能在頁(yè)面輸出"Hello World",特地把整個(gè)過(guò)程記錄下來(lái),利人利己。
首先我創(chuàng)建了一個(gè)文件夾webpack-helloworld-demo,之后的大部分操作都會(huì)在這個(gè)文件夾下進(jìn)行。
1.初始化文件夾
npm init //初始化一個(gè)package.json文件 git init //產(chǎn)生.git文件,便于之后版本提交回退
2.搭建webpack環(huán)境
npm install webpack --save-dev //安裝webpack依賴
--save建議使用,這樣當(dāng)別人clone你的代碼時(shí),只需要npm install就可以安裝好所有需要的依賴,并且你也可以在你的package.json文件夾中看到你使用的哪些依賴。
現(xiàn)在我們可以測(cè)試下webpack有沒(méi)有安裝成功,在文件夾根目錄下創(chuàng)建三個(gè)文件,分別是entry.js,bundle.js,index.html,文件內(nèi)容分別如下。
//entry.js
document.write('Hello World');
//index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <script type="text/javascript" src="bundle.js" charset="utf-8"></script> </body> </html>
bundle.js內(nèi)容為空
執(zhí)行命令行:webpack ./entry.js bundle.js
之后會(huì)發(fā)現(xiàn)bundle.js文件下有好多代碼出現(xiàn),這就是經(jīng)過(guò)webpack打包后的文件。在瀏覽器打開(kāi)index.html,頁(yè)面會(huì)出現(xiàn)Hello World,webpack安裝成功!
3.配置webpack
創(chuàng)建webpack.config.js文件,進(jìn)行如下基本配置
module.exports = {
entry: "./entry.js", // 要打包的入口文件
output: { //打包后的文件
path: __dirname, //表示使用絕對(duì)路徑
filename: "bundle.js" //輸出文件名
},
module: {
loaders: [ //用于加載一些靜態(tài)文件夾(css樣式,圖片之類)
{ test: /\.css$/, loader: "style!css" },
{
test: /\.jsx?$/,
loader: 'babel-loader',
exclude: /node_modules/, //不進(jìn)行轉(zhuǎn)換的文件,可以提高打包速度
query: {
cacheDirectory: true,
presets: ['react', 'es2015']
}
}
]
}
};
執(zhí)行命令:webpack
打開(kāi)index.html出現(xiàn)Hello World,配置成功。
現(xiàn)在我們的文件目錄如下:

4.express下運(yùn)行
npm install express --save-dev
創(chuàng)建server.js
var express = require('express');
var app = express();
app.use(express.static('./')); //訪問(wèn)當(dāng)前目錄下的靜態(tài)文件。默認(rèn)訪問(wèn)index.html
app.listen(3000, function () {
console.log('Example app listening on port 3000!');
});
執(zhí)行命令: webpack // 用于打包文件 node server.js // 開(kāi)啟服務(wù)器
瀏覽器訪問(wèn) http://localhost:3000/ , 頁(yè)面顯示Hello World,運(yùn)行成功!
5.配置 React, ES6 & Babel 6
npm install react --save-dev npm install react-dom --save-dev npm install babel-loader --save-dev // 轉(zhuǎn)換JSX npm install babel-core --save-dev // babel的核心包 npm install babel-preset-es2015-dev // es2015的babel預(yù)設(shè) npm install babel-preset-react-dev // react的babel預(yù)設(shè)
創(chuàng)建文件.babelrc
{
"presets": [
"es2015",
"react"
]
}
接下來(lái)就是寫react小例子測(cè)試?yán)玻趀ntry.js寫入:
import React, {Component} from 'react';
import {render} from "react-dom";
class HelloMessage extends React.Component {
render() {
return <div>Hello World</div>;
}
}
render(<HelloMessage />, document.getElementById('app'));
為了將組件渲染到頁(yè)面,我們需要在index.html中添加一個(gè)相當(dāng)于容器的div:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <div id="app"></div> // 添加的div,渲染至div中 <script type="text/javascript" src="bundle.js" charset="utf-8"></script> </body> </html>
瀏覽器訪問(wèn) http://localhost:3000/ , 頁(yè)面顯示Hello World,運(yùn)行成功!
現(xiàn)在我們的文件目錄為:

至此我們就搭建好了一個(gè)簡(jiǎn)單的環(huán)境啦~
框架Github地址:https://github.com/DQing/webpack-helloworld-demo.git
大家在搭建框架時(shí)不要忘了小步提交。
還可以進(jìn)行一些額外的配置,步驟其實(shí)都差不多
框架Github地址:https://github.com/DQing/jishiben.git
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解使用WebPack搭建React開(kāi)發(fā)環(huán)境
- 基于Webpack4和React hooks搭建項(xiàng)目的方法
- 基于webpack4.X從零搭建React腳手架的方法步驟
- Webpack 4.x搭建react開(kāi)發(fā)環(huán)境的方法步驟
- webpack4 + react 搭建多頁(yè)面應(yīng)用示例
- 基于webpack4搭建的react項(xiàng)目框架的方法
- 從零開(kāi)始搭建webpack+react開(kāi)發(fā)環(huán)境的詳細(xì)步驟
- 使用webpack搭建react開(kāi)發(fā)環(huán)境的方法
- 手動(dòng)用webpack搭建第一個(gè)ReactApp的示例
- 使用webpack5從0到1搭建一個(gè)react項(xiàng)目的實(shí)現(xiàn)步驟
相關(guān)文章
使用?React?Hooks?重構(gòu)類組件的示例詳解
這篇文章主要介紹了如何使用?React?Hooks?重構(gòu)類組件,本文就來(lái)通過(guò)一些常見(jiàn)示例看看如何使用 React Hooks 來(lái)重構(gòu)類組件,需要的朋友可以參考下2022-07-07
詳解react使用react-bootstrap當(dāng)輪子造車
本篇文章主要介紹了詳解react使用react-bootstrap當(dāng)輪子造車,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-08-08
react antd checkbox實(shí)現(xiàn)全選、多選功能
目前好像只有table組件有實(shí)現(xiàn)表格數(shù)據(jù)的全選功能,如果說(shuō)對(duì)于list,card,collapse等其他組件來(lái)說(shuō),需要自己結(jié)合checkbox來(lái)手動(dòng)實(shí)現(xiàn)全選功能,這篇文章主要介紹了react antd checkbox實(shí)現(xiàn)全選、多選功能,需要的朋友可以參考下2024-07-07
如何解決React useEffect鉤子帶來(lái)的無(wú)限循環(huán)問(wèn)題
本文主要介紹了解決React useEffect鉤子帶來(lái)的無(wú)限循環(huán)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
React如何利用Antd的Form組件實(shí)現(xiàn)表單功能詳解
這篇文章主要給大家介紹了關(guān)于React如何利用Antd的Form組件實(shí)現(xiàn)表單功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
react項(xiàng)目中redux的調(diào)試工具不起作用的解決
這篇文章主要介紹了react項(xiàng)目中redux的調(diào)試工具不起作用的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
React Native 集成 ArcGIS 地圖的詳細(xì)過(guò)程
ArcGIS官方提供了 JavaScript SDK,也提供了 ArcGIS-Runtime-SDK-iOS,但是并沒(méi)有提供 React Native的版本,所以這里使用了 react-native-arcgis-mapview 庫(kù),本文給大家介紹React Native 集成 ArcGIS 地圖的詳細(xì)過(guò)程,感興趣的朋友跟隨小編一起看看吧2024-06-06

