亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

webpack入門+react環(huán)境配置

 更新時(shí)間:2017年02月08日 10:07:09   作者:閣主乄  
webpack是一個(gè)前端資源模塊化管理和打包工具,說(shuō)白了就是方便我們管理自己的常用的一些代碼,比如你開發(fā)中用到sass以及jade同時(shí)用到es6,開發(fā)時(shí)你不可能改動(dòng)某個(gè)地方就挨個(gè)命令去轉(zhuǎn)換再到瀏覽器去看效果,那樣效率是非常低的。所以webpack幫我們省去了那些多余的步驟。

小結(jié)放在前:這篇文章主要是為下一篇的react提前鋪好路,webpack是一個(gè)前端資源模塊化管理和打包工具,說(shuō)白了就是方便我們管理自己的常用的一些代碼,比如你開發(fā)中用到sass以及jade同時(shí)用到es6,開發(fā)時(shí)你不可能改動(dòng)某個(gè)地方就挨個(gè)命令去轉(zhuǎn)換在到瀏覽器去看效果,那樣效率是非常低的。所以webpack幫我們省去了那些多余的步驟

webpack 基本安裝

開始前還是萬(wàn)萬(wàn)不能缺少的安裝:

npm install webpack -g

安裝完接著是建個(gè)文件夾新建一個(gè)package.json依賴管理文件

npm init  //運(yùn)行后  按提示填寫   當(dāng)然嫌麻煩 就直接下一步  下一步就好  無(wú)傷大礙

現(xiàn)在安裝我們的webpack

npm install webpack --save-dev 
//--save-dev 的意思是將這個(gè)安裝過(guò)程記錄到我們的package.json依賴管理文件里

完后新建一個(gè)文件并命名為webpack.config.js(如同我們的常規(guī)的 gulpfile.js、Gruntfile.js),就是一個(gè)配置項(xiàng),告訴 webpack 它需要做什么。

打開webpack.config.js引入webpack

var webpack = require('webpack');

webpack 基本入門

webpack主要結(jié)構(gòu)分三個(gè):入口文件配置(entry)、入口文件輸出配置(output)、加載器配置(module)、其他配置(resolve)

入口文件配置

entry: {
 index : './src/main.js'
 },

入口文件輸出配置

//配置編譯成功后文件存放的位置
output: {
 path: 'dist/js', //編譯后文件所在的文件夾
 filename: '[name].js' //根據(jù)入口文件名命名編譯后的文件名,編譯后文件還是叫main.js
 },

加載器配置

module: {
 //最關(guān)鍵的一塊配置,它告知 webpack 每一種文件都需要使用什么加載器來(lái)處理
 loaders: [
 { test: /\.css$/, loader: 'style-loader!css-loader' },
 { test: /\.js$/, loader: 'jsx-loader?harmony' },
 { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
 { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'}
 ]
 },

其他配置

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

ok!好記憶不如爛筆頭,現(xiàn)在我們來(lái)自己搭建一個(gè)react的開發(fā)環(huán)境吧!

先參考我的目錄結(jié)構(gòu)

build存放編譯后的文件,development存放react代碼的文件夾,components存放react組件的文件夾,node_modules存放安裝的依賴

我們先要安裝一些項(xiàng)目依賴:

npm install --save-dev react react-dom
npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react
npm install --save-dev style-loader css-loader sass-loader url-loader
npm install --save-dev webpack-dev-server 
//自動(dòng)刷新修改后的結(jié)果,在webpack.config.js中配置webpack-dev-server,
//在這里需要修改下entry的路徑,給它加一個(gè)webpack/hot/dev-server,后文會(huì)提到

要是安裝失敗那就分開一個(gè)個(gè)裝,還不行就用淘寶的cnpm裝 ,還不行就看看你的node和npm的環(huán)境變量等配置(親身體會(huì)T_T)

npm install cnpm -g

行!接下來(lái)是文件的內(nèi)容

webpack.config.js文件的配置如下:

var path = require('path');
var webpack = require('webpack'); //加載webpack依賴包
module.exports = {
 entry: ['webpack/hot/dev-server', path.resolve(__dirname, './development/main.js')], 
 //入口文件并添加了熱加載
 output: {
 path: path.resolve(__dirname, './build'),
 filename: 'bundle.js' //輸出文件
 },
 module: {
 loaders: [
 {
 test: /\.js?$/,
 exclude: /(node_modules|bower_components)/,
 loader: 'babel',
 query: {
 presets: ['es2015', 'react']
 } //將react編譯成js文件
 },
 { test: /\.css$/, loader: 'style-loader!css-loader' }, 
 //打包c(diǎn)ss文件
 { test: /\.scss$/, loader: 'style!css!sass?sourceMap'}, 
 //編譯sass文件
 { test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'} 
 //對(duì)圖片進(jìn)行打包
 ]
 },
 plugins: [
 new webpack.HotModuleReplacementPlugin()
 ],
 resolve: {
 //自動(dòng)擴(kuò)展文件后綴名
 extensions: ['', '.js', '.json', '.scss', '.ts']
 }
};

main.js內(nèi)容如下:

let React = require('react');
let ReactDOM = require('react-dom');
let AppComponent = require('./components/index.js');
ReactDOM.render(<AppComponent />, document.getElementById('content'));

index.js內(nèi)容如下:

var React = require('react');
var ProductBox;
ProductBox = React.createClass({
 render: function () {
 return (
 <div className="productBox">
 hello react&es2015&webpack!!!
 </div>
 );
 }
});
module.exports = ProductBox;

index.html內(nèi)容如下:

<!DOCTYPE html>
<html>
<head lang="en">
 <meta charset="UTF-8">
 <title>React Project</title>
</head>
<body>
<script src="http://localhost:8080/webpack-dev-server.js"></script>
<div id="content"></div>
<script src="./bundle.js"></script>
</body>
</html>

將上面的文件寫好后并放到對(duì)應(yīng)文件夾內(nèi)運(yùn)行命令npm run build dev,成功后瀏覽器訪問地址location:8080,就會(huì)顯示出對(duì)應(yīng)界面

結(jié)果:

hello react&es2015&webpack!!!

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • 解決React報(bào)錯(cuò)The?tag?is?unrecognized?in?this?browser

    解決React報(bào)錯(cuò)The?tag?is?unrecognized?in?this?browser

    這篇文章主要為大家介紹了解決React報(bào)錯(cuò)The?tag?is?unrecognized?in?this?browser示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • React使用refs操作DOM方法詳解

    React使用refs操作DOM方法詳解

    React核心就在于虛擬DOM,也就是在React中不總是直接操作頁(yè)面真實(shí)的DOM元素,并且結(jié)合Diffing算法,可以做到最小化頁(yè)面重繪,有些時(shí)候不可避免的我們需要一種方法可以操作我們定義的元素標(biāo)簽,并作出對(duì)應(yīng)的修改。在React中提供了一種訪問DOM節(jié)點(diǎn)的方式,也就是這里的refs
    2022-11-11
  • useEffect如何通過(guò)form.getFieldValue(‘xxx‘)監(jiān)聽Form表單變化

    useEffect如何通過(guò)form.getFieldValue(‘xxx‘)監(jiān)聽Form表單變化

    這篇文章主要介紹了useEffect如何通過(guò)form.getFieldValue(‘xxx‘)監(jiān)聽Form表單變化問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • React報(bào)錯(cuò)之Object?is?possibly?null的問題及解決方法

    React報(bào)錯(cuò)之Object?is?possibly?null的問題及解決方法

    這篇文章主要介紹了React報(bào)錯(cuò)之Object?is?possibly?null的問題,造成 "Object is possibly null"的錯(cuò)誤是因?yàn)閡seRef()鉤子可以傳遞一個(gè)初始值作為參數(shù),而我們傳遞null作為初始值,本文給大家分享詳細(xì)解決方法,需要的朋友可以參考下
    2022-07-07
  • 如何在React項(xiàng)目中優(yōu)雅的使用對(duì)話框

    如何在React項(xiàng)目中優(yōu)雅的使用對(duì)話框

    在項(xiàng)目中,對(duì)話框和確認(rèn)框是使用頻率很高的組件,下面這篇文章主要給大家介紹了關(guān)于如何在React項(xiàng)目中優(yōu)雅的使用對(duì)話框的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • React中代碼分割的4種實(shí)現(xiàn)方式

    React中代碼分割的4種實(shí)現(xiàn)方式

    雖然一直有做react相關(guān)的優(yōu)化,按需加載、dll 分離、服務(wù)端渲染,但是從來(lái)沒有從路由代碼分割這一塊入手過(guò),所以下面這篇文章主要給大家介紹了關(guān)于React中代碼分割的4種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2022-01-01
  • TypeScript在React中的應(yīng)用技術(shù)實(shí)例解析

    TypeScript在React中的應(yīng)用技術(shù)實(shí)例解析

    這篇文章主要為大家介紹了TypeScript在React中的應(yīng)用技術(shù)實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • React Native中的RefreshContorl下拉刷新使用

    React Native中的RefreshContorl下拉刷新使用

    本篇文章主要介紹了React Native中的RefreshContorl下拉刷新使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • React 父子組件通信的實(shí)現(xiàn)方法

    React 父子組件通信的實(shí)現(xiàn)方法

    這篇文章主要介紹了React 父子組件通信的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • react函數(shù)組件useState異步,數(shù)據(jù)不能及時(shí)獲取到的問題

    react函數(shù)組件useState異步,數(shù)據(jù)不能及時(shí)獲取到的問題

    這篇文章主要介紹了react函數(shù)組件useState異步,數(shù)據(jù)不能及時(shí)獲取到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論