React多頁面應(yīng)用2(處理CSS及圖片,引入postCSS,及圖片處理等)

微信公眾號首發(fā)墓怀!這邊文章排版可能不好汉嗽,請關(guān)注公眾號酝掩,查看歷史消息屿笼!

本教程總共7篇,每日更新一篇,請關(guān)注我們!你可以進(jìn)入歷史消息查看以往文章,也敬請期待我們的新文章!

1.React多頁面應(yīng)用1(webpack開發(fā)環(huán)境搭建,包括Babel等舔、熱更新等) ----2017.12.28

2.React多頁面應(yīng)用2(處理CSS及圖片,引入postCSS及圖片處理等)----2017.12.29

3.React多頁面應(yīng)用3(webpack性能提升,包括打包性能骚灸、提取公共包等)----2017.12.30

4.React多頁面應(yīng)用4(webpack自動化生成多入口頁面)----2017.12.31

5.React多頁面應(yīng)用5(webpack生產(chǎn)環(huán)境配置,包括壓縮js代碼,圖片轉(zhuǎn)碼等)----2018.01.01

6.React多頁面應(yīng)用6(gulp自動化發(fā)布到多個環(huán)境,生成版本號,打包成zip等)----2018.01.02

7.React多頁面應(yīng)用7(引入eslint代碼檢查)----2018.01.03

開發(fā)環(huán)境:Windows 8,node v8.9.1,npm 5.5.1,WebStorm 2017.2.2

1.添加postCSS 支持

npm i -D precss postcss-loader postcss-cssnext style-loader css-loader

2.配置postcss

根目錄下?postcss.config.js

module.exports = {

plugins: [

require('precss'),

? ? ?require('postcss-cssnext')

]

}

3.配置 webpack 開發(fā)配置

config -> webpack ->?webpack.dev.conf.js

const webpack =require('webpack');//引入webpack

const opn =require('opn');//打開瀏覽器

const merge =require('webpack-merge');//webpack配置文件合并

const path =require("path");

const baseWebpackConfig =require("./webpack.base.conf");//基礎(chǔ)配置

const webpackFile =require("./webpack.file.conf");//一些路徑配置

let config = merge(baseWebpackConfig, {

output: {

path: path.resolve(webpackFile.devDirectory),

? ? ? ?filename:'js/[name].js',

? ? ? ?chunkFilename:"js/[name]-[id].js",

? ? ? ?publicPath:''

? ?},

? ?plugins: [

/*設(shè)置開發(fā)環(huán)境*/

? ? ? ?new webpack.DefinePlugin({

'process.env': {

NODE_ENV: JSON.stringify('development'),

? ? ? ? ? ?}

}),

? ? ? ?/*設(shè)置熱更新*/

? ? ? ?new webpack.HotModuleReplacementPlugin(),

? ?],

? ?module: {

rules: [

{

test:/\.(js|jsx)$/,

? ? ? ? ? ? ? ?use: [

'babel-loader',

? ? ? ? ? ? ? ?],

? ? ? ? ? ? ? ?include: [

path.resolve(__dirname, "../../app"),

? ? ? ? ? ? ? ? ? ?path.resolve(__dirname, "../../entryBuild")

],

? ? ? ? ? ? ? ?exclude: [

path.resolve(__dirname, "../../node_modules")

],

? ? ? ? ? ?},

? ? ? ? ? ?{

test:/\.(css|pcss)$/,

? ? ? ? ? ? ? ?loader:'style-loader?sourceMap!css-loader?sourceMap!postcss-loader?sourceMap',

? ? ? ? ? ? ? ?exclude:/node_modules/

? ? ? ? ? ?}

]

},

? ?/*設(shè)置api轉(zhuǎn)發(fā)*/

? ?devServer: {

host:'0.0.0.0',

? ? ? ?port:8080,

? ? ? ?hot:true,

? ? ? ?inline:true,

? ? ? ?contentBase: path.resolve(webpackFile.devDirectory),

? ? ? ?historyApiFallback:true,

? ? ? ?disableHostCheck:true,

? ? ? ?proxy: [

{

context: ['/api/**', '/u/**'],

? ? ? ? ? ? ? ?target:'http://192.168.12.100:8080/',

? ? ? ? ? ? ? ?secure:false

? ? ? ? ? ?}

],

? ? ? ?/*打開瀏覽器 并打開本項目網(wǎng)址*/

? ? ? ?after() {

opn('http://localhost:' +this.port);

? ? ? ?}

}

});

module.exports = config;

新加了如下配置代碼

{

test:/\.(css|pcss)$/,

? ?loader:'style-loader?sourceMap!css-loader?sourceMap!postcss-loader?sourceMap',

? ?exclude:/node_modules/

}

4.新建index.pcss 文件

app -> public -> css 目錄下

.cont {

.top {

color:#FF9302;

?}

.bottom {

color:#F00000;

?}

}

如果編譯器 報錯: 請安裝postCSS插件

5.react組件 引入index.pcss 文件

import Reactfrom 'react';

import '../../public/css/index.pcss'

class Indexextends React.Component {

constructor(props) {

super(props);

? ? ? ?this.state = {seconds:0 };

? ?}

tick() {

this.setState(prevState => ({

seconds: prevState.seconds +1

? ? ? ?}));

? ?}

componentDidMount() {

this.interval =setInterval(() =>this.tick(), 1000);

? ?}

componentWillUnmount() {

clearInterval(this.interval);

? ?}

render() {

return (


? ? ? ? ? ? ? ? ? ?這是首頁222222


? ? ? ? ? ? ? ? ? ?Seconds: {this.state.seconds}

? ? ? ?);

? ?}

}

export default Index;

現(xiàn)在你的工程就支持postCSS了.

6.圖片的處理

原則上本地圖片建議都放在背景里

添加依賴

npm i -D file-loader

7.修改webpack配置文件

config -> webpack ->?webpack.dev.conf.js

const webpack =require('webpack');//引入webpack

const opn =require('opn');//打開瀏覽器

const merge =require('webpack-merge');//webpack配置文件合并

const path =require("path");

const baseWebpackConfig =require("./webpack.base.conf");//基礎(chǔ)配置

const webpackFile =require("./webpack.file.conf");//一些路徑配置

let config = merge(baseWebpackConfig, {

output: {

path: path.resolve(webpackFile.devDirectory),

? ? ? ?filename:'js/[name].js',

? ? ? ?chunkFilename:"js/[name]-[id].js",

? ? ? ?publicPath:''

? ?},

? ?plugins: [

/*設(shè)置開發(fā)環(huán)境*/

? ? ? ?new webpack.DefinePlugin({

'process.env': {

NODE_ENV: JSON.stringify('development'),

? ? ? ? ? ?}

}),

? ? ? ?/*設(shè)置熱更新*/

? ? ? ?new webpack.HotModuleReplacementPlugin(),

? ?],

? ?module: {

rules: [

{

test:/\.(js|jsx)$/,

? ? ? ? ? ? ? ?use: [

'babel-loader',

? ? ? ? ? ? ? ?],

? ? ? ? ? ? ? ?include: [

path.resolve(__dirname, "../../app"),

? ? ? ? ? ? ? ? ? ?path.resolve(__dirname, "../../entryBuild")

],

? ? ? ? ? ? ? ?exclude: [

path.resolve(__dirname, "../../node_modules")

],

? ? ? ? ? ?},

? ? ? ? ? ?{

test:/\.(css|pcss)$/,

? ? ? ? ? ? ? ?loader:'style-loader?sourceMap!css-loader?sourceMap!postcss-loader?sourceMap',

? ? ? ? ? ? ? ?exclude:/node_modules/

? ? ? ? ? ?},

? ? ? ? ? ?{

test:/\.(png|jpg|gif|ttf|eot|woff|woff2|svg|swf)$/,

? ? ? ? ? ? ? ?loader:'file-loader?name=[name].[ext]&outputPath=' +webpackFile.resource +'/'

? ? ? ? ? ?}

]

},

? ?/*設(shè)置api轉(zhuǎn)發(fā)*/

? ?devServer: {

host:'0.0.0.0',

? ? ? ?port:8080,

? ? ? ?hot:true,

? ? ? ?inline:true,

? ? ? ?contentBase: path.resolve(webpackFile.devDirectory),

? ? ? ?historyApiFallback:true,

? ? ? ?disableHostCheck:true,

? ? ? ?proxy: [

{

context: ['/api/**', '/u/**'],

? ? ? ? ? ? ? ?target:'http://192.168.12.100:8080/',

? ? ? ? ? ? ? ?secure:false

? ? ? ? ? ?}

],

? ? ? ?/*打開瀏覽器 并打開本項目網(wǎng)址*/

? ? ? ?after() {

opn('http://localhost:' +this.port);

? ? ? ?}

}

});

module.exports = config;

新添加了 如下配置代碼

{

test:/\.(png|jpg|gif|ttf|eot|woff|woff2|svg|swf)$/,

? ?loader:'file-loader?name=[name].[ext]&outputPath=' +webpackFile.resource +'/'

}

8.插入圖片

修改 index.pcss

app -> public -> css 目錄下

.cont {

.top {

color:#FF9302;

? ?.bd_logo1 {

display:inline-block;

? ? ?width:540px;

? ? ?height:258px;

? ? ?background-image:url("../img/bd_logo1.png");

? ? ?background-size:contain;

? ?}

}

.bottom {

color:#F00000;

?}

}

9.再次運行

npm run dev

本文完

禁止擅自轉(zhuǎn)載,如需轉(zhuǎn)載請在公眾號中留言聯(lián)系我們!

感謝童鞋們支持!

歡迎童鞋們留言!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市慌植,隨后出現(xiàn)的幾起案子甚牲,更是在濱河造成了極大的恐慌,老刑警劉巖蝶柿,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丈钙,死亡現(xiàn)場離奇詭異,居然都是意外死亡交汤,警方通過查閱死者的電腦和手機(jī)雏赦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芙扎,“玉大人星岗,你說我怎么就攤上這事∽莨耍” “怎么了伍茄?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長施逾。 經(jīng)常有香客問我敷矫,道長例获,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任曹仗,我火速辦了婚禮榨汤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘怎茫。我一直安慰自己收壕,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布轨蛤。 她就那樣靜靜地躺著蜜宪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祥山。 梳的紋絲不亂的頭發(fā)上圃验,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機(jī)與錄音缝呕,去河邊找鬼澳窑。 笑死,一個胖子當(dāng)著我的面吹牛供常,可吹牛的內(nèi)容都是我干的摊聋。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼栈暇,長吁一口氣:“原來是場噩夢啊……” “哼麻裁!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起源祈,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤悲立,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后新博,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡脚草,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年赫悄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片馏慨。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡埂淮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出写隶,到底是詐尸還是另有隱情倔撞,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布慕趴,位于F島的核電站痪蝇,受9級特大地震影響鄙陡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躏啰,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一趁矾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧给僵,春花似錦毫捣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蹲诀,卻和暖如春斑粱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背侧甫。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工珊佣, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人披粟。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓咒锻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親守屉。 傳聞我的和親對象是個殘疾皇子惑艇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

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

  • GitChat技術(shù)雜談 前言 本文較長,為了節(jié)省你的閱讀時間拇泛,在文前列寫作思路如下: 什么是 webpack滨巴,它要...
    蕭玄辭閱讀 12,693評論 7 110
  • 無意中看到zhangwnag大佬分享的webpack教程感覺受益匪淺,特此分享以備自己日后查看俺叭,也希望更多的人看到...
    小小字符閱讀 8,164評論 7 35
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載裕照。 webpack介紹和使用 一攒发、webpack介紹 1、由來 ...
    it筱竹閱讀 11,121評論 0 21
  • 1晋南,在OC開發(fā)中惠猿,如果一個變量暫時不使用,可以賦值為0(基本類型)或者賦值為空(對象類型)2负间,在swift中偶妖,ni...
    CowboyBebop閱讀 121評論 0 0
  • 昨晚光棍節(jié)跟朋友出去玩了 在天橋馬路邊砸碎了10個酒瓶子 墨綠的玻璃碎片看上去很美 車流跟路燈模糊成失焦的老電影膠...
    蔡不帥閱讀 398評論 0 0