[React] webpack+babel+react+sass

1. 工程配置

(1)新建工程目錄帐姻,并進(jìn)入

$ mkdir webpack-babel-react-sass && cd webpack-babel-react-sass

(2)項(xiàng)目初始化

$ npm init

會(huì)提示輸入一些工程相關(guān)的信息蝙斜,
全部使用默認(rèn)值即可箱蝠,最后會(huì)寫入到./package.json

(3)安裝開發(fā)環(huán)境依賴

$ npm install --save-dev \
webpack \
babel-core babel-loader babel-preset-es2015 babel-preset-react \
css-loader style-loader sass-loader node-sass \
extract-text-webpack-plugin

會(huì)自動(dòng)修改./package.json煤杀。

其中,babel相關(guān)的有谒出,babel-core babel-loader babel-preset-es2015 babel-preset-react隅俘,sass相關(guān)的有,css-loader style-loader sass-loader node-sass笤喳。

extract-text-webpack-plugin是一個(gè)webpack插件为居,用于將樣式表提取到單獨(dú)的文件中。

(4)安裝代碼依賴

$ npm install --save react react-dom

會(huì)自動(dòng)修改./package.json

(5)配置babel

新建.babelrc文件

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

(6)配置webpack

新建webpack.config.js

const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    context: path.resolve(__dirname, ''),
    entry: [
        path.resolve(__dirname, 'src/index.jsx')
    ],
    output: {
        path: path.resolve(__dirname, 'dist/'),
        filename: 'index.js'
    },
    module: {
        loaders: [
            {
                test: /\.jsx$/,
                loader: 'babel-loader'
            },
            {
                test: /\.scss$/,
                loaders: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    use: ['css-loader', 'sass-loader']
                })
            }
        ]
    },
    plugins: [
        new ExtractTextPlugin('index.css')
    ]
};

當(dāng)前目錄結(jié)構(gòu)

+ node_modules
.babelrc
package.json
webpack.config.js

2. 示例代碼

新建component和src目錄

添加以下5個(gè)文件杀狡,
component/hello.jsx蒙畴,component/hello.scss
src/index.jsx呜象,src/index.scss膳凝,src/index.html
目錄結(jié)構(gòu)如下董朝,

- component
    hello.jsx
    hello.scss
+ node_modules
- src
    index.jsx
    index.scss
.babelrc
package.json
webpack.config.js

(1)component/hello.jsx

import React, { Component } from 'react';
import './hello.scss';

class Hello extends Component {
    render() {
        return (
            <span className="hello">hello</span>
        );
    }
}

export default Hello;

(2)component/hello.scss

.hello {
    color:red;
}

(3)src/index.jsx

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

import Hello from '../component/hello.jsx';
import './index.scss';

ReactDOM.render(
    <div className="page">
        <Hello />
    </div>,
    document.getElementById('page')
);

(4)src/index.scss

.page {
    font-size:20px;
}

(5)src/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="../dist/index.css">
</head>
<body>
    <div id="page"></div>

    <script src="../dist/index.js"></script>
</body>
</html>

3. 編譯運(yùn)行

(1)編譯并監(jiān)控文件改變

$ webpack --watch

(2)瀏覽器打開src/index.html


參考

webpack
extract-text-webpack-plugin
Github - 源碼

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末鸠项,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子子姜,更是在濱河造成了極大的恐慌,老刑警劉巖楼入,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哥捕,死亡現(xiàn)場離奇詭異,居然都是意外死亡嘉熊,警方通過查閱死者的電腦和手機(jī)遥赚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阐肤,“玉大人凫佛,你說我怎么就攤上這事讲坎。” “怎么了愧薛?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵晨炕,是天一觀的道長。 經(jīng)常有香客問我毫炉,道長瓮栗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任瞄勾,我火速辦了婚禮费奸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘进陡。我一直安慰自己愿阐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布趾疚。 她就那樣靜靜地躺著换况,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盗蟆。 梳的紋絲不亂的頭發(fā)上戈二,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音喳资,去河邊找鬼觉吭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛仆邓,可吹牛的內(nèi)容都是我干的鲜滩。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼节值,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼徙硅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起搞疗,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤嗓蘑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后匿乃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桩皿,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年幢炸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泄隔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宛徊,死狀恐怖佛嬉,靈堂內(nèi)的尸體忽然破棺而出逻澳,到底是詐尸還是另有隱情,我是刑警寧澤暖呕,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布斜做,位于F島的核電站,受9級(jí)特大地震影響缰揪,放射性物質(zhì)發(fā)生泄漏陨享。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一钝腺、第九天 我趴在偏房一處隱蔽的房頂上張望抛姑。 院中可真熱鬧,春花似錦艳狐、人聲如沸定硝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔬啡。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背直颅。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留空猜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓恨旱,卻偏偏與公主長得像辈毯,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子搜贤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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

  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺谆沃,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,147評(píng)論 7 35
  • GitChat技術(shù)雜談 前言 本文較長仪芒,為了節(jié)省你的閱讀時(shí)間唁影,在文前列寫作思路如下: 什么是 webpack,它要...
    蕭玄辭閱讀 12,681評(píng)論 7 110
  • webpack 介紹 webpack 是什么 為什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert閱讀 6,460評(píng)論 2 71
  • Webpack學(xué)習(xí)總結(jié) 此文只是自己學(xué)習(xí)webpack的一些總結(jié)桌硫,方便自己查閱夭咬,閱讀不變,非常抱歉C! 下載安裝:...
    Lxs_597閱讀 936評(píng)論 0 0
  • 人類刷臉時(shí)代即將到來南用, 而海黃的刷臉早已有之膀钠。 木材中價(jià)位最高的海黃掏湾, 質(zhì)地軟硬適中, 香氣清遠(yuǎn)肿嘲, 另一個(gè)迷人的地...
    慢生活工坊閱讀 193評(píng)論 0 0