基于webpack搭建react運行環(huán)境

最近由于項目需要卡儒,所以嘗試使用webpack搭建react運行環(huán)境,在克服了一系列困難后全景,終于能在頁面輸出"Hello World"耀石,特地把整個過程記錄下來,利人利己爸黄。

首先我創(chuàng)建了一個文件夾webpack-helloworld-demo滞伟,之后的大部分操作都會在這個文件夾下進行。

1.初始化文件夾

npm init  //初始化一個package.json文件
git init    //產(chǎn)生.git文件炕贵,便于之后版本提交回退

2.搭建webpack環(huán)境

npm install webpack --save-dev  //安裝webpack依賴

--save建議使用梆奈,這樣當別人clone你的代碼時,只需要npm install就可以安裝好所有需要的依賴称开,并且你也可以在你的package.json文件夾中看到你使用的哪些依賴亩钟。

現(xiàn)在我們可以測試下webpack有沒有安裝成功,在文件夾根目錄下創(chuàng)建三個文件鳖轰,分別是entry.js清酥,bundle.jsindex.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

之后會發(fā)現(xiàn)bundle.js文件下有好多代碼出現(xiàn),這就是經(jīng)過webpack打包后的文件昆雀。
在瀏覽器打開index.html,頁面會出現(xiàn)Hello World辱志,webpack安裝成功!

3.配置webpack

創(chuàng)建webpack.config.js文件狞膘,進行如下基本配置

module.exports = {
    entry: "./entry.js", // 要打包的入口文件
    output: {               //打包后的文件
        path: __dirname,   //表示使用絕對路徑
        filename: "bundle.js" //輸出文件名
    },
    module: {
        loaders: [            //用于加載一些靜態(tài)文件夾(css樣式荸频,圖片之類)
          { test: /\.css$/, loader: "style!css" },
          {
                test: /\.jsx?$/,
                loader: 'babel-loader',
                exclude: /node_modules/, //不進行轉(zhuǎn)換的文件,可以提高打包速度
                query: {
                    cacheDirectory: true,
                    presets: ['react', 'es2015']
                }
           }
        ]
    }
};
執(zhí)行命令:webpack

打開index.html出現(xiàn)Hello World,配置成功客冈。

現(xiàn)在我們的文件目錄如下:


項目文件目錄

4.express下運行

npm install express --save-dev

創(chuàng)建server.js

var express = require('express');  
var app = express();

app.use(express.static('./')); //訪問當前目錄下的靜態(tài)文件旭从。默認訪問index.html

app.listen(3000, function () {
    console.log('Example app listening on port 3000!');
});

執(zhí)行命令:
webpack  // 用于打包文件
node server.js  // 開啟服務(wù)器

瀏覽器訪問 http://localhost:3000/ , 頁面顯示Hello World场仲,運行成功和悦!

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預設(shè)
npm install babel-preset-react-dev // react的babel預設(shè)

創(chuàng)建文件.babelrc

  {
    "presets": [
      "es2015",
      "react"
    ]
 }

接下來就是寫react小例子測試啦,在entry.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'));

為了將組件渲染到頁面渠缕,我們需要在index.html中添加一個相當于容器的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>

瀏覽器訪問 http://localhost:3000/ , 頁面顯示Hello World亦鳞,運行成功馍忽!

現(xiàn)在我們的文件目錄為:

項目文件目錄

至此我們就搭建好了一個簡單的環(huán)境啦~

框架Github地址:https://github.com/DQing/webpack-helloworld-demo.git
大家在搭建框架時不要忘了小步提交棒坏。


還可以進行一些額外的配置,步驟其實都差不多
框架Github地址:https://github.com/DQing/jishiben.git

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末遭笋,一起剝皮案震驚了整個濱河市坝冕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌瓦呼,老刑警劉巖喂窟,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異央串,居然都是意外死亡磨澡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門质和,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稳摄,“玉大人,你說我怎么就攤上這事饲宿∠贸辏” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵褒傅,是天一觀的道長弃锐。 經(jīng)常有香客問我,道長殿托,這世上最難降的妖魔是什么霹菊? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮支竹,結(jié)果婚禮上旋廷,老公的妹妹穿的比我還像新娘。我一直安慰自己礼搁,他們只是感情好饶碘,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馒吴,像睡著了一般扎运。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上饮戳,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天豪治,我揣著相機與錄音锯岖,去河邊找鬼茅茂。 笑死宦芦,一個胖子當著我的面吹牛蒙揣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拢锹,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼赖临,長吁一口氣:“原來是場噩夢啊……” “哼鲤脏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起厨姚,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤衅澈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遣蚀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體矾麻,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡纱耻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年芭梯,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弄喘。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡玖喘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蘑志,到底是詐尸還是另有隱情累奈,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布急但,位于F島的核電站澎媒,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏波桩。R本人自食惡果不足惜戒努,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望镐躲。 院中可真熱鬧储玫,春花似錦、人聲如沸萤皂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽裆熙。三九已至端礼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間入录,已是汗流浹背蛤奥。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纷跛,地道東北人喻括。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像贫奠,于是被迫代替她去往敵國和親唬血。 傳聞我的和親對象是個殘疾皇子望蜡,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前言 React技術(shù)之火爆無須多言,其與webpack的完美結(jié)合拷恨,也讓二者毋庸置疑的成為天生一對脖律。為了進行Reac...
    令狐蔥001閱讀 1,803評論 2 24
  • webpack 介紹 webpack 是什么 為什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert閱讀 6,480評論 2 71
  • 最近在學習 Webpack,網(wǎng)上大多數(shù)入門教程都是基于 Webpack 1.x 版本的,我學習 Webpack 的...
    My_Oh_My閱讀 8,190評論 40 247
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)腕侄,斷路器小泉,智...
    卡卡羅2017閱讀 134,719評論 18 139
  • 剛回到家。今天上午一家人看了電影冕杠、吃了大餐微姊,回家的路上遇見了小區(qū)里一位媽媽,琪琪媽和我在孩子2歲時就認識了分预,那次在...
    清文雅書閱讀 154評論 2 1