React項(xiàng)目環(huán)境搭建流程(壹)

1.創(chuàng)建項(xiàng)目文件夾

2.npm init生成package.json文件

3.創(chuàng)建項(xiàng)目文件

4.安裝插件:

-->webpack

--> html-webpack-plugin?

-->webpack-dev-server

--> babel-preset-es2015?

--> 使用react所需的插件(babel-core、babel-loader、bebel-react-preset 、react、react-dom)

-->添加CSS樣式.css ?.scss(css-loader、style-loader、sass-loader)

-->處理圖片,在指定的圖片大小范圍內(nèi)自動(dòng)啟用base64編碼圖片(url-loader)

-->安裝第三方庫(kù)(jquery,moment,undersocre之類的庫(kù))


webpack:

==>1.webpack是整個(gè)環(huán)境的骨架,它能幫助我們進(jìn)行模塊化打包,指定輸入、輸出文件、可以引入各種插件(plugins)以及強(qiáng)大的babel-loader功能(能幫助我們引入sass、處理圖片和其他靜態(tài)文件跟jsx文件)等等

==>2.webpack.config.js文件配置:

entry:頁(yè)面入口文件配置

outout:入口文件輸出配置

plugins:插件項(xiàng)

modul:加載器配置

resolves:其他解決方案配置

devServer:用于配置webpack-dev-server插件

devtool:'eval-source-map'

html-webpack-plugin:

==>1.html-webpack-plugin會(huì)在指定的輸出(output)輸出文件夾里生成indexhtml文件,并且其會(huì)自動(dòng)引入同文件夾里面的js、css等文件。

==>2.需在webpack.config.js文件進(jìn)行配置:

var htmlwebpackPlugin = require('html-webpack-plugin')

module.exports={

...

plugins:[

new htmlwebpackPlugin({

title:'這里是網(wǎng)頁(yè)的標(biāo)題',

})

]

}

webpack-dev-server:

==>1.?cnpm install webpack-dev-server --save-dev

==>2. webpack.config.js文件配置:

module.exports={

devServer:{

historyApiFallback:true,

hot:true,

inline:true,

progress:true,

}

}

==>3.?在package.json文件配置命令:

"scripts": {

"start": "webpack-dev-server --hot --inline"

},

==>4. 瀏覽器輸入:localhost:8080

babel-preset-es2015:

==>1.本地安裝 cnpm install babel-preset-es2015 --save-dev 既可以在項(xiàng)目中使用ES6語(yǔ)法

使用react所需的插件(react、react-dom、babel-core、babel-loader、bebel-preset-react)

==>1.cnpm install react --save

==>2.cnpm install react-dom --save

==>3.cnpm install babel-core --save-dev

==->4.cnpm install babel-loader --save-dev

==>5.cnpm install babel-preset-react --save-dev(這個(gè)包,是專門作為react的優(yōu)化,讓你在代碼中可以使用React ES6 classes的寫法,同時(shí)直接支持JSX語(yǔ)法格式。)

==>6.webpack.config.js文件配置:

module.exports={

loaders:[{

test:/\.jsx?$/, ? //表示 .jsx文件使用 babel來(lái)處理

loader:'babel',? //表示 .jsx文件使用 babel來(lái)處理

include:APP_PATH, ?//包含的文件夾

query:{

//添加兩個(gè)presents 使用這兩種presets處理js或者jsx文件

presets:['es2015','react']

}

}],

//這里還需要添加一個(gè)resolve的參數(shù),把jsx這種擴(kuò)展名添加進(jìn)去,這樣就可以在js中import加載jsx這種擴(kuò)展名的腳本

resolve:{

extensions: ['', '.js', '.jsx'] ? //自動(dòng)擴(kuò)展文件后綴名,意味著我們r(jià)equire模塊可以省略不寫后綴名

},

}

添加CSS樣式(.css? .scss):

==>1. cnpm install css-loader --save-dev? ? //css-loader會(huì)遍歷css文件,找到所有的url(...)并且處理

==>2. cnpm install style-loader --save-dev? //style-loader會(huì)把所有的樣式插入到你頁(yè)面的一個(gè)style tag中

==>3. cnpm install sass-loader --save-dev

==>4. cnpm install node-sass --save-dev

==>5. webpack.config.js文件配置:

module.exports={

module:{

loaders:[

{

test:/\.css$/,

loaders:[ 'style' , 'css' ],

include:APP_PATH,

}

]

}

}

==>5. 在index.js中引入css文件或scss文件

require('./main.css');? 或? require('./main.scss');

處理圖片:

==>1. cnpm install url-loader --save-dev

==>2. 配置webpack.config.js文件:

module.exports={

module:{

loaders:[

{

test:test:/\.(png|jpg)$/,

loader:'url?limit=40000' ? ?//注意后面那個(gè)limit的參數(shù),當(dāng)你圖片大小小于這個(gè)限制的時(shí)候,會(huì)自動(dòng)啟用base64編碼圖片

}

]

}

}

安裝第三方庫(kù)(jquery 、moment):

==>1. 安裝jquery:cnpm install jquery --save-dev

==>2. 在js中引用它: var $ = require(' jquery ');

==>3. 安裝moment:cnpm install moment --save-dev

==>4. 在js中引用它:var moment = require('moment');

==>5.?使用,如:$('body').append('look at me! now is ' + moment().format() );

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容