搜尋
首頁web前端js教程Webpack、Babel、React開發環境的搭建教學
Webpack、Babel、React開發環境的搭建教學Jan 11, 2018 am 09:27 AM
babelreactwebpack

本文主要介紹了詳解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的环境搭建好了,接下来我们就可以此基础上来进行开发了。

相关推荐:

React Native 搭建开发环境详解

如何使用Docker部署PHP开发环境

详解php多人开发环境原理

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
VUE3入门教程:使用Webpack进行打包和构建VUE3入门教程:使用Webpack进行打包和构建Jun 15, 2023 pm 06:17 PM

Vue是一款优秀的JavaScript框架,它可以帮助我们快速构建交互性强、高效性好的Web应用程序。Vue3是Vue的最新版本,它引入了很多新的特性和功能。Webpack是目前最流行的JavaScript模块打包器和构建工具之一,它可以帮助我们管理项目中的各种资源。本文就为大家介绍如何使用Webpack打包和构建Vue3应用程序。1.安装Webpack

vite和webpack的区别是什么vite和webpack的区别是什么Jan 11, 2023 pm 02:55 PM

区别:1、webpack服务器启动速度比vite慢;由于vite启动的时候不需要打包,也就无需分析模块依赖、编译,所以启动速度非常快。2、vite热更新比webpack快;vite在HRM方面,当某个模块内容改变时,让浏览器去重新请求该模块即可。3、vite用esbuild预构建依赖,而webpack基于node。4、vite的生态不及webpack,加载器、插件不够丰富。

如何使用PHP和webpack进行模块化开发如何使用PHP和webpack进行模块化开发May 11, 2023 pm 03:52 PM

随着Web开发技术的不断发展,前后端分离、模块化开发已经成为了一个广泛的趋势。PHP作为一种常用的后端语言,在进行模块化开发时,我们需要借助一些工具来实现模块的管理和打包,其中webpack是一个非常好用的模块化打包工具。本文将介绍如何使用PHP和webpack进行模块化开发。一、什么是模块化开发模块化开发是指将程序分解成不同的独立模块,每个模块都有自己的作

react中forceupdate的用法是什么react中forceupdate的用法是什么Apr 19, 2022 pm 12:03 PM

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

webpack怎么将es6转成es5的模块webpack怎么将es6转成es5的模块Oct 18, 2022 pm 03:48 PM

配置方法:1、用导入的方法把ES6代码放到打包的js代码文件中;2、利用npm工具安装babel-loader工具,语法“npm install -D babel-loader @babel/core @babel/preset-env”;3、创建babel工具的配置文件“.babelrc”并设定转码规则;4、在webpack.config.js文件中配置打包规则即可。

Webpack是什么?详解它是如何工作的?Webpack是什么?详解它是如何工作的?Oct 13, 2022 pm 07:36 PM

Webpack是一款模块打包工具。它为不同的依赖创建模块,将其整体打包成可管理的输出文件。这一点对于单页面应用(如今Web应用的事实标准)来说特别有用。

使用Spring Boot和Webpack构建前端工程和插件系统使用Spring Boot和Webpack构建前端工程和插件系统Jun 22, 2023 am 09:13 AM

随着现代Web应用程序的复杂性不断增加,构建优秀的前端工程和插件系统变得越来越重要。随着SpringBoot和Webpack的流行,它们成为了一个构建前端工程和插件系统的完美组合。SpringBoot是一个Java框架,它以最小的配置要求来创建Java应用程序。它提供了很多有用的功能,比如自动配置,使开发人员可以更快、更容易地搭建和部署Web应用程序。W

vue webpack可打包哪些文件vue webpack可打包哪些文件Dec 20, 2022 pm 07:44 PM

在vue中,webpack可以将js、css、图片、json等文件打包为合适的格式,以供浏览器使用;在webpack中js、css、图片、json等文件类型都可以被当做模块来使用。webpack中各种模块资源可打包合并成一个或多个包,并且在打包的过程中,可以对资源进行处理,如压缩图片、将scss转成css、将ES6语法转成ES5等可以被html识别的文件类型。

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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境