搜尋
首頁web前端js教程詳細解答Webpack+Babel+React環境搭建(詳細教學)

本篇文章主要介紹了詳解Webpack Babel React開發環境的搭建的方法步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下

1.認識Webpack

構建應用程式前我們先來了解Webpack, Webpack是一個模組打包工具,能夠把各種檔案(例如:ReactJS、Babel、Coffeescript、Less/Sass等)當作模組進行編譯後進行打包。

2.安裝Webpack

要開始使用Webpack在專案中進行開發前我們首先需要在全域環境中安裝。

npm install webpack -g

3.創建一個專案

安裝好後創建一個名叫learn-webpack的專案並進入該專案資料夾,當然專案名字可以起你自己想要的名字。

mkdir learn-webpack && cd learn-webpack

透過編輯器找到你剛剛建立的專案資料夾

#現在我們來建立2個檔案:

app. js

document.querySelector('#app').innerHTML = 'Hello World!';

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Learn-webpack</title>
</head>
<body>
 <p id="app"></p>
 <script src="dist/bundle.js"></script>
</body>
</html>

然後在終端執行

webpack ./app.js ./dist/bundle.js

#最後執行啟動本機的http服務

python -m SimpleHTTPServer

這時候你就可以在瀏覽器輸入:http://localhost:8000

如果你能在瀏覽器裡面看到Hello world!那表示你已經成功的利用Webpack把main.js打包並編譯到了bundle.js.是不是很簡單?

定義一個設定檔

上面的只是對Webpack的使用進行了一些簡單的介紹,實際上每個專案下都應該包含一個webpack.config. js,用來告訴Webpack需要做些什麼。

module.exports = {
 entry: "app.js",
 output: {
  path: __dirname+"/dist",
  filename: "bundle.js"
 }
}

現在在終端機中執行:webpack

看看是不是跟之前輸入 webpack ./app.js ./dist/bundle.js 的打包編譯結果。

entry:指定打包的入口文件

1.單一文件打包為單一輸出文件,直接寫該文件的名字,例如:entry:"main.js "

2.多個檔案打包為單一輸出文件,將檔案名稱放進一個數組,例如:entry:['main.js','xx.js']

3 .多個文件打包為多個輸出文件,將文件名放入一個鍵字對,例如:entry: {a:'main.js',b:'xx.js'}

output:設定打包結果

path為定義輸出資料夾,filename為打包結果檔案的名稱,如果指定打包入口檔案為上面的1、2種情況,filename裡面直接跟你想輸出的檔名。若為第3種情況filename裡面需寫成[name].檔名.js,filename裡面的[name]為entry中的鍵。

監聽變化自動打包

當我們在不停的對程式碼進行變動的時候,為了不修改一次然後又手動去進行打包一次。可以使用webpack的watch功能。

webpack --watch 或webpack -w

或可以直接在設定碼裡面把watch設定為true

module.exports = {
 entry: "app.js",
 output: {
  path: __dirname+"/dist",
  filename: "bundle.js"
 },
 watch: true
}

4.使用Babel

Babel是什麼? Babel 是 JavaScript 編譯器。使用它可以將ES6的語法轉換為ES5的語法,以便在現在有的環境中執行。

在終端執行:npm install webpack babel-loader babel-core babel-preset-es2015 --save-dev

執行安裝完成後需要將先前的webpack.config.js修改為:

module.exports = {
 entry: "./app.js",
 output: {
  path: __dirname+"/dist",
  filename: "bundle.js"
 },
 module: {
  loaders: [
   {
    test: /\.jsx?$/,
    loader: &#39;babel-loader&#39;,
    exclude: /node_modules/,
    query: {
     presets: [&#39;es2015&#39;]
    }
   }
  ]
 },
 resolve: {
  extensions: [&#39;&#39;,&#39;.coffee&#39;,&#39;.js&#39;]
 }
}

現在就能在檔案裡面以ES6的語法進行程式碼編寫,我們來測試一下,在app.js加入:

var func = str => {
 console.log(str);
};
func(&#39;我现在在使用Babel!&#39;);

ES6支援用箭頭方式來定義函數,如果你能在控制台看到「我現在在使用Babel!」的列印文字,說明我們的Babel模組安裝成功,可以開始使用ES6進行程式碼編寫了。

loaders項目裡面表示用來載入這種類型的資源的loader。

test,是一段正規則,表示進行比對的資源型別。

exclude為指定應該被忽略的文件,我們在這裡指定了/node_modules/。

query有2種寫法, 一種是直接以字串形式跟在loader名後:

loader: &#39;babel-loader?presets[]=es2015

另一種如本​​文所示:

query: {
 presets: [&#39;es2015&#39;]
}

resolve. extensions 用於指明程式自動補全識別哪些後綴,

注意一下, extensions 第一個是空字串! 對應不需要後綴的情況.

5.結合React

我們已經對Webpack和Babel進行了設定並做了一些介紹,基本的環境已經建置好了,現在我們開始在使用React。

終端機輸入以下程式碼對react和react-dom進行安裝

npm install react react-dom --save

Babel針對React的所有的預設插件

npm install babel-preset-react --save-dev

由於我們增加了react的預設插件,所以需要對webpack.config.js進行修改。

將module -> loaders下面的query修改如下:

query: {
  presets: [&#39;es2015&#39;,&#39;react&#39;]
}

現在建立一個名為hello.js的檔案

import React from "react";

class Hello extends React.Component{
 render() {
  return (
   <p>
     Hello, World!
   </p>
  )
 }
}

export default Hello;

然後將app.js裡面的文件修改如下:

import React from "react";
import ReactDOM from "react-dom";
import Hello from "./hello";

// var func = str => {
//  console.log(str);
// };
//
// func('我现在在使用Babel!');
// document.querySelector(&#39;#app&#39;).innerHTML = &#39;Hello World!&#39;;

ReactDOM.render(
 ,
 document.querySelector('#app')
);

如果你能在浏览器里面看到 "Hello, React!",就说明我们已经将Webpack+Babel+React的环境搭建好了,接下来我们就可以此基础上来进行开发了。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

如何解决vue 更改计算属性后select选中值不更改的问题,具体操作如下

如何解决iview 的select下拉框选项错位的问题,具体操作如下

如何通过Vue.js实现select下拉列表,具体操作如下

以上是詳細解答Webpack+Babel+React環境搭建(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
JavaScript評論:使用//和 / * * / * / * /JavaScript評論:使用//和 / * * / * / * /May 13, 2025 pm 03:49 PM

JavaScriptusestwotypesofcomments:single-line(//)andmulti-line(//).1)Use//forquicknotesorsingle-lineexplanations.2)Use//forlongerexplanationsorcommentingoutblocksofcode.Commentsshouldexplainthe'why',notthe'what',andbeplacedabovetherelevantcodeforclari

Python vs. JavaScript:開發人員的比較分析Python vs. JavaScript:開發人員的比較分析May 09, 2025 am 12:22 AM

Python和JavaScript的主要區別在於類型系統和應用場景。 1.Python使用動態類型,適合科學計算和數據分析。 2.JavaScript採用弱類型,廣泛用於前端和全棧開發。兩者在異步編程和性能優化上各有優勢,選擇時應根據項目需求決定。

Python vs. JavaScript:選擇合適的工具Python vs. JavaScript:選擇合適的工具May 08, 2025 am 12:10 AM

選擇Python還是JavaScript取決於項目類型:1)數據科學和自動化任務選擇Python;2)前端和全棧開發選擇JavaScript。 Python因其在數據處理和自動化方面的強大庫而備受青睞,而JavaScript則因其在網頁交互和全棧開發中的優勢而不可或缺。

Python和JavaScript:了解每個的優勢Python和JavaScript:了解每個的優勢May 06, 2025 am 12:15 AM

Python和JavaScript各有優勢,選擇取決於項目需求和個人偏好。 1.Python易學,語法簡潔,適用於數據科學和後端開發,但執行速度較慢。 2.JavaScript在前端開發中無處不在,異步編程能力強,Node.js使其適用於全棧開發,但語法可能複雜且易出錯。

JavaScript的核心:它是在C還是C上構建的?JavaScript的核心:它是在C還是C上構建的?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc; sanInterpretedlanguagethatrunsonenginesoftenwritteninc.1)JavascriptwasdesignedAsignedAsalightWeight,drackendedlanguageforwebbrowsers.2)Enginesevolvedfromsimpleterterpretpretpretpretpreterterpretpretpretpretpretpretpretpretpretcompilerers,典型地,替代品。

JavaScript應用程序:從前端到後端JavaScript應用程序:從前端到後端May 04, 2025 am 12:12 AM

JavaScript可用於前端和後端開發。前端通過DOM操作增強用戶體驗,後端通過Node.js處理服務器任務。 1.前端示例:改變網頁文本內容。 2.後端示例:創建Node.js服務器。

Python vs. JavaScript:您應該學到哪種語言?Python vs. JavaScript:您應該學到哪種語言?May 03, 2025 am 12:10 AM

選擇Python還是JavaScript應基於職業發展、學習曲線和生態系統:1)職業發展:Python適合數據科學和後端開發,JavaScript適合前端和全棧開發。 2)學習曲線:Python語法簡潔,適合初學者;JavaScript語法靈活。 3)生態系統:Python有豐富的科學計算庫,JavaScript有強大的前端框架。

JavaScript框架:為現代網絡開發提供動力JavaScript框架:為現代網絡開發提供動力May 02, 2025 am 12:04 AM

JavaScript框架的強大之處在於簡化開發、提升用戶體驗和應用性能。選擇框架時應考慮:1.項目規模和復雜度,2.團隊經驗,3.生態系統和社區支持。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。