亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

webpack入門(mén)及結(jié)合react進(jìn)行開(kāi)發(fā)

OldPanda / 2742人閱讀

摘要:最后還可以跟我們的進(jìn)行結(jié)合管理代碼什么是說(shuō)明白點(diǎn)就是模塊打包機(jī),可以很好的管理我們的模塊,可以對(duì)瀏覽器進(jìn)行更好的兼容。安裝首選我們要安裝,中已經(jīng)給我們下載了我們通過(guò)進(jìn)行安裝管理。

webpack入門(mén)及結(jié)合react進(jìn)行開(kāi)發(fā)

重要提示(2017年7月26號(hào)更新)

本文介紹的是最新版的3.4.1,并且其中又跟React結(jié)合的例子!

寫(xiě)在前邊

前端技術(shù)更新太快,從幾年前的jquery、djto、Prototype到react、vue、angular,自動(dòng)化工具也是這樣從之前的grunt、requireJs到現(xiàn)在的gulp、webpack、jspm、包管理工具也是從之前的bower、npm到現(xiàn)在的yern!技術(shù)更新?lián)Q代特別快,所以我們開(kāi)發(fā)人員每天應(yīng)該有倆個(gè)小時(shí)以上來(lái)學(xué)習(xí)技術(shù)!

什么是webpack,為什么我們要使用webpack 為什么我們要使用webpack

現(xiàn)今的很多網(wǎng)頁(yè)其實(shí)可以看做是功能豐富的應(yīng)用,它們擁有著復(fù)雜的JavaScript代碼和一大堆依賴(lài)包。為了簡(jiǎn)化開(kāi)發(fā)的復(fù)雜度,前端社區(qū)涌現(xiàn)出了很多好的實(shí)踐方法

模塊化 通過(guò)webpack我們使用它可以很好的管理我們的前端代碼

打包 通過(guò)webpack我們可以進(jìn)行應(yīng)用打包,編輯、壓縮代碼、圖片

loader 通過(guò)webpack我們可以通過(guò)loader進(jìn)行編輯我們的模塊,把我們的文件或者模塊進(jìn)行編輯,編輯成我們的javascript或者網(wǎng)頁(yè)能看懂的語(yǔ)言!

通過(guò)webpack可以編輯less、sass、postcss等css預(yù)處理器。

最后還可以跟我們的react、vue進(jìn)行結(jié)合管理代碼

什么是webpack

WebPack說(shuō)明白點(diǎn)就是模塊打包機(jī),可以很好的管理我們的模塊,可以對(duì)瀏覽器進(jìn)行更好的兼容。

開(kāi)始使用Webpack

現(xiàn)在開(kāi)始使用最新版的webpack,我寫(xiě)的比較簡(jiǎn)單希望對(duì)你們有所幫助,看完之后可以使用我們的webpack。

安裝

首選我們要安裝nodeJs,nodeJs中已經(jīng)給我們下載了npm我們通過(guò)npm進(jìn)行安裝管理。

項(xiàng)目初始化
npm init -y
安裝webpack
npm install webpack -gd //全局
npm install webpack --save-dev  //局部

安裝后之后我們就可以進(jìn)行打包打包使用

創(chuàng)建app.js

import bar from "./bar";

bar();

創(chuàng)建bar.js

export default function bar() {
  document.write("Hello World")
}

index.html


  
    ...
  
  
    ...
       //bundle使我們進(jìn)行打包的文件
  

在webpack.config.js中進(jìn)行配置

module.exports = {
  entry: "./app.js",    //entry引入的文件
  output: {
    filename: "bundle.js"    //output  打包到的文件
  }
}

命令行運(yùn)行webpack,打開(kāi)瀏覽器你會(huì)看到我們的Hello World,這就是最簡(jiǎn)單的webpack使用!

下邊結(jié)合react進(jìn)行開(kāi)發(fā) 安裝babel-lorder

通過(guò)babel我們可以編輯Es6+、jsx等,我們開(kāi)發(fā)現(xiàn)代代碼必不可少的一款工具!

npm install --save-dev babel-loader babel-core

在這里我要介紹一下cnpm,我們?cè)谂渲铆h(huán)境的過(guò)程中可能會(huì)遇到自己網(wǎng)速慢,或者npm服務(wù)器慢的特點(diǎn),我們可以通過(guò)淘寶鏡像cnpm進(jìn)行安裝,跟咱們的npm一樣不過(guò)是淘寶鏡像過(guò)來(lái)的,因此不受外網(wǎng)服務(wù)器影響。安裝跟npm一樣,我們做的額只不過(guò)是把前邊的npm改成cnpm

安裝cnpm
npm install cnpm -gd
轉(zhuǎn)譯插件

我們需要安裝一些插件才可以進(jìn)行我們的jsx編輯,因?yàn)槲覀兊膔eact就是通過(guò)jsx寫(xiě)的

npm install babel-preset-env  babel-preset-react --save-dev
//淘寶鏡像安裝
cnpm install babel-preset-env  babel-preset-react --save-dev
在主項(xiàng)目錄下的babelrc進(jìn)行配置
{
  "presets": ["env","babel-preset-react"]
}
安裝 react庫(kù)
npm install react react-dom --save

這樣我們就可以進(jìn)行react和webpack結(jié)合進(jìn)行模塊管理。

Hello World實(shí)例

我們的項(xiàng)目結(jié)構(gòu)如下圖:

把index.html、bundle.js放在build文件夾下邊,我們的入口文件app.js文件地址不變。

index.html




    
    
    
    webpack


    

app.js

"use strict"
import React from "react";
import ReactDOM from "react-dom";
import HelloWorld from "./components/HelloWorld";
import "./css/main.css";

ReactDOM.render(
    ,
    document.getElementById("app")
);

webpack.config.js

module.exports = {
  entry: "./app.js",
  output: {
    filename: "build/bundle.js"
  },
  module: {
  rules: [
     {test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader"}
 ]
}
}

我們運(yùn)行webpack watch進(jìn)行項(xiàng)目啟動(dòng),我們看到的是本地文件的網(wǎng)址,我們需要安裝下邊的環(huán)境插件啟動(dòng)端口

webpack-dev-server啟動(dòng)端口

我們的webpack啟動(dòng)的端口8080:端口

npm install  webpack-dev-server -gd  //全局
npm install  webpack-dev-server --save-dev  //局部
//我們的文件需要在全局進(jìn)行安裝

運(yùn)行 webpack-dev-server --content-base build/ 默認(rèn)啟動(dòng)是運(yùn)行 webpack-dev-server,由于我們創(chuàng)建了文件框架,所以需要指定目錄文件運(yùn)行 --content-base build/這樣我們就可以進(jìn)行文件刷新,發(fā)現(xiàn)很不方便,需要進(jìn)行文件自動(dòng)刷新,或者模塊熱更新

首先需要配置webpakc.comfig.js文件
var path = require("path");
......
output: {
    path: path.resolve(__dirname, "build"),
    publicPath: "/assets/",
    filename: "build/bundle.js"
  }
運(yùn)行命令
webpack-dev-server --content-base build/ --inline

這樣就可以進(jìn)行文件更新,但是這樣做每次都大刷頁(yè)面,還可以更好一點(diǎn),比如更新其中的一個(gè)模塊其他的不刷新,

安裝react-hot-loader
npm install react-hot-loader --save-dev

繼續(xù)配置webpack配置文件

rules: [
     {test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader"},
     {test: /.css$/, exclude: /node_modules/, loader: "style-loader!css-loader"}
  ]

配置完的大概是這樣

var path = require("path");
module.exports = {
  devtool:"source-map",
  entry: "./app.js",
  output: {
    path: path.resolve(__dirname, "build"),
    publicPath: "/assets/",
    filename: "build/bundle.js"
  },
  module: {
  rules: [
     {test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader"},
     {test: /.css$/, exclude: /node_modules/, loader: "style-loader!css-loader"}
  ]
}
}

剛開(kāi)始就說(shuō)過(guò)webpack很強(qiáng)大,我們可以通過(guò)安裝loader進(jìn)行處理,比如說(shuō)css、less、sass等

安裝style-loader css-loader
npm install style-loader css-loader --save-dev

這樣我們就可以引入css到我們的入口文件,今天遇到一點(diǎn)小坑,因?yàn)橹坝玫绞莏spm,我在文件后邊加了個(gè)!
跟我們引入其他模塊一樣,css也是我們的模塊

import "./css/main.css";

這樣就介紹的差不多了,下邊給大家介紹一款webpack模塊瀏覽器調(diào)試的小東西,
我們只需要在我們的webpack配置文件中加入下邊的代碼就可以進(jìn)行代碼調(diào)試!

module.exports = {
  devtool:"source-map"
  }
寫(xiě)在最后

如果覺(jué)得對(duì)你有所幫助,可以點(diǎn)贊收藏,如果發(fā)現(xiàn)哪里寫(xiě)的不好可以在下邊評(píng)論指出,你的意見(jiàn)就是我繼續(xù)編寫(xiě)下去的動(dòng)力,如果有什么問(wèn)題可以評(píng)論指出我會(huì)為你進(jìn)行解答!

個(gè)人創(chuàng)建了一個(gè)群,因?yàn)槿憾S碼有時(shí)間限制,大家可以?huà)呙栉业膫€(gè)人微信!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/84352.html

相關(guān)文章

  • TypeScript極速完全入門(mén)-3ts結(jié)合react進(jìn)行項(xiàng)目開(kāi)發(fā)

    摘要:前面我們已經(jīng)說(shuō)了大部分的核心內(nèi)容,接下來(lái)我們就說(shuō)說(shuō)如何用開(kāi)發(fā)實(shí)際項(xiàng)目。因?yàn)楹徒Y(jié)合很緊密,資料也很多,而且我會(huì)找機(jī)會(huì)專(zhuān)門(mén)說(shuō)下這方面的知識(shí),所以我們將重點(diǎn)放到如何用結(jié)合上來(lái)。所以前面打牢基礎(chǔ),現(xiàn)在我們開(kāi)始實(shí)際組建工作流。 前面我們已經(jīng)說(shuō)了大部分typescript的核心內(nèi)容,接下來(lái)我們就說(shuō)說(shuō)如何用typescript開(kāi)發(fā)實(shí)際項(xiàng)目。 因?yàn)閍ngular和typescript結(jié)合很緊密,資料也...

    arashicage 評(píng)論0 收藏0
  • webpack 教程資源收集

    學(xué)習(xí)的過(guò)程中收藏了這些優(yōu)秀教程和的項(xiàng)目,希望對(duì)你有幫助。 github地址, 有不錯(cuò)的就更新 官方文檔 中文指南 初級(jí)教程 webpack-howto 作者:Pete Hunt Webpack 入門(mén)指迷 作者:題葉   webpack-demos 作者:ruanyf 一小時(shí)包教會(huì) —— webpack 入門(mén)指南 作者:VaJoy Larn   webpack 入門(mén)及實(shí)踐 作者:...

    Backache 評(píng)論0 收藏0
  • 庫(kù),組件,框架 - 收藏集 - 掘金

    摘要:哈哈,我理解,架構(gòu)就是骨架,如下圖所示譯年月個(gè)有趣的和庫(kù)前端掘金我們創(chuàng)辦的使命是讓你及時(shí)的了解開(kāi)發(fā)中最新最酷的趨勢(shì)。 翻譯 | 上手 Webpack ? 這篇就夠了! - 掘金譯者:小 boy (滬江前端開(kāi)發(fā)工程師) 本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明作者及出處。 原文地址:https://www.smashingmagazine.... JavaSrip... 讀 Zepto 源碼之代碼結(jié)構(gòu) - ...

    tommego 評(píng)論0 收藏0
  • 前端資源系列(4)-前端學(xué)習(xí)資源分享&前端面試資源匯總

    摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒(méi)想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...

    princekin 評(píng)論0 收藏0
  • 前端相關(guān)大雜燴

    摘要:希望幫助更多的前端愛(ài)好者學(xué)習(xí)。前端開(kāi)發(fā)者指南作者科迪林黎,由前端大師傾情贊助。翻譯最佳實(shí)踐譯者張捷滬江前端開(kāi)發(fā)工程師當(dāng)你問(wèn)起有關(guān)與時(shí),老司機(jī)們首先就會(huì)告訴你其實(shí)是個(gè)沒(méi)有網(wǎng)絡(luò)請(qǐng)求功能的庫(kù)。 前端基礎(chǔ)面試題(JS部分) 前端基礎(chǔ)面試題(JS部分) 學(xué)習(xí) React.js 比你想象的要簡(jiǎn)單 原文地址:Learning React.js is easier than you think 原文作...

    fuyi501 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<