關於編譯jsx教程的信息

本文目錄一覽:

如何使用react-tools將jsx編譯成JavaScript

使用react-tools將jsx編譯成JavaScript方法:

1,通過npm安裝react-tools

npm –g react-tools

2,通過cmd進入項目根目錄執行watch命令 jsx –watch src/ build/

src路徑下存放的是jsx文件,編譯後的js存放到build路徑下

3,當目標文件變化以後,自動構建生成新的js文件。

React | 使用webpack構建React項目

配置 React 項目,需要完成的工作:

1、編譯 jsx,es6,scss 等資源

2、自動引入靜態資源到 html 頁面

3、實時編譯和刷新瀏覽器

4、按指定模塊化規範自動包裝模塊

5、自動給 css 添加瀏覽器內核前綴

6、按需打包合併 js、css

根據 webpack 文檔編寫最基本的 webpack 配置,直接使用 node api 的方式

/* webpack.config.js */

var webpack= require( ‘webpack’ );

// 輔助函數  var utils= require( ‘./utils’ );

var fullPath=utils.fullPath;

var pickFiles=utils.pickFiles;

// 項目根路徑  var ROOT_PATH=fullPath( ‘../’ );

// 項目源碼路徑  var SRC_PATH=ROOT_PATH+ ‘/src’ ;

// 產出路徑  var DIST_PATH=ROOT_PATH+ ‘/dist’ ;

// 是否是開發環境  var __DEV__= process.env. NODE_ENV !== ‘production’ ;

// conf

var alias=pickFiles({

id :/(conf\/[^\/]+).js$/,

pattern :SRC_PATH+ ‘/conf/*.js’

});

// components

alias= Object.assign(alias,pickFiles({

id :/(components\/[^\/]+)/,

pattern :SRC_PATH+ ‘/components/*/index.js’

}));

// reducers

alias= Object.assign(alias,pickFiles({

id :/(reducers\/[^\/]+).js/,

pattern :SRC_PATH+ ‘/js/reducers/*’

}));

// actions

alias= Object.assign(alias,pickFiles({

id :/(actions\/[^\/]+).js/,

pattern :SRC_PATH+ ‘/js/actions/*’

}));

var config= {

context :SRC_PATH,

entry : {

app : [ ‘./pages/app.js’ ]

},

output : {

path :DIST_PATH,

filename : ‘js/bundle.js’

},

module : {},

resolve : {

alias :alias

},

plugins : [

new webpack.DefinePlugin({

//

“process.env.NODE_ENV” : JSON .stringify(process.env. NODE_ENV || ‘development’ )

})

]

};

module.

exports =config;

/* webpack.dev.js */

var webpack= require( ‘webpack’ );

var WebpackDevServer= require( ‘webpack-dev-server’ );

var config= require( ‘./webpack.config’ );

var utils= require( ‘./utils’ );

var PORT=8080;

var HOST=utils.getIP();

var args= process.argv;

var hot=args.indexOf( ‘–hot’ ) -1;

var deploy=args.indexOf( ‘–deploy’ ) -1;

// 本地環境靜態資源路徑  var localPublicPath= ‘http://’ +HOST+ ‘:’ +PORT+ ‘/’ ;

config.output. publicPath =localPublicPath;

config.entry.app.unshift( ‘webpack-dev-server/client?’ +localPublicPath);

new WebpackDevServer(webpack(config), {

hot :hot,

inline : true ,

compress : true ,

stats : {

chunks : false ,

children : false ,

colors : true

},

// Set this as true if you want to access dev server from arbitrary url.

// This is handy if you are using a html5 router.

historyApiFallback : true ,

}).listen(

PORT,HOST, function () {

console .log(localPublicPath);

});

編譯 jsx、es6、scss 等資源:

● 使用 bael 和 babel-loader 編譯 jsx、es6

● 安裝插件: babel-preset-es2015 用於解析 es6

● 安裝插件:babel-preset-react 用於解析 jsx

// 首先需要安裝 babel

$ npm i babel-core

// 安裝插件

$ npm i babel-preset-es2015babel-preset-react

// 安裝 loader

$ npm i babel-loader

在項目根目錄創建 .babelrc 文件:

{

“presets” : [ “es2015” , “react” ]

}

在 webpack.config.js 里添加:

// 使用緩存 var CACHE_PATH = ROOT_PATH + ‘/cache’ ;

// loaders

config.module. loaders = [];

// 使用 babel 編譯 jsx 、 es6

config.module. loaders .push({

test :/\.js$/,

exclude :/node_modules/,

include : SRC_PATH,

// 這裡使用  loaders ,因為後面還需要添加  loader

loaders : [ ‘babel?cacheDirectory=’ + CACHE_PATH ]

});

接下來使用 sass-loader 編譯 sass:

$ npm i sass-loader node-sasscss-loader style-loader

●css-loader 用於將 css 當做模塊一樣來 import

●style-loader 用於自動將 css 添加到頁面

在 webpack.config.js 里添加:

// 編譯  sass

config.module. loaders .push({

test :/\.(scss|css)$/,

loaders : [ ‘style’ , ‘css’ , ‘sass’ ]

});

自動引入靜態資源到相應 html 頁面

● 使用 html-webpack-plugin

$ npm i html-webpack-plugin

在 webpack.config.js 里添加:

// html  頁面  var HtmlwebpackPlugin= require( ‘html-webpack-plugin’ );

config.

plugins .push(

new HtmlwebpackPlugin({

filename : ‘index.html’ ,

chunks : [ ‘app’ ],

template : SRC_PATH + ‘/pages/app.html’

})

);

打包合併 js、css

webpack 默認將所有模塊都打包成一個 bundle,並提供了 Code Splitting 功能便於我們按需拆分。在這個例子里我們把框架和庫都拆分出來:

在 webpack.config.js 添加:

config.entry. lib = [

‘react’ , ‘react-dom’ , ‘react-router’ ,

‘redux’ , ‘react-redux’ , ‘redux-thunk’

]

config.output. filename = ‘js/[name].js’ ;

config.

plugins .push(

new webpack.optimize.CommonsChunkPlugin( ‘lib’ , ‘js/lib.js’ )

);

// 別忘了將  lib  添加到  html  頁面

// chunks: [‘app’, ‘lib’]

使用VSCode編寫jsx代碼時如何實現標籤自動

VSCode是kiddd最喜歡的編輯器,極簡而靈活,豐富而且繼續豐富著的插件庫,配置簡單,都吸引著我。眾所周知,VSCode在編寫HTML代碼時可以tab鍵自動補齊標籤。然而在編寫.jsx文件的代碼時,嵌套的標籤就無法享用一鍵補齊的優待了。

當然,如果這點問題不能解決,VSCode也不能在現代編譯器中脫穎而出了。這裡kiddd就介紹一種簡單的實現方法,你不需要下載任何插件。

1. 打開設置

打開:文件——首選項——設置

2. 修改」emmet.triggerExpansionOnTab」屬性

打開設置後搜索」emmet.triggerExpansionOnTab」屬性,將其修改為false。 

修改的方式是:點擊該語句左側的筆狀圖標,或直接在右側輸入:

「emmet.triggerExpansionOnTab」: false 

over,搞定,配置完之後你就可以在jsx文件中tab補齊標籤了。是不是非常簡單?開始你的react之旅吧。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237377.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:04
下一篇 2024-12-12 12:04

相關推薦

  • MQTT使用教程

    MQTT是一種輕量級的消息傳輸協議,適用於物聯網領域中的設備與雲端、設備與設備之間的數據傳輸。本文將介紹使用MQTT實現設備與雲端數據傳輸的方法和注意事項。 一、準備工作 在使用M…

    編程 2025-04-29
  • Python3.6.5下載安裝教程

    Python是一種面向對象、解釋型計算機程序語言。它是一門動態語言,因為它不會對程序員提前聲明變數類型,而是在變數第一次賦值時自動識別該變數的類型。 Python3.6.5是Pyt…

    編程 2025-04-29
  • Deepin系統分區設置教程

    本教程將會詳細介紹Deepin系統如何進行分區設置,分享多種方式讓您了解如何規劃您的硬碟。 一、分區的基本知識 在進行Deepin系統分區設置之前,我們需要了解一些基本分區概念。 …

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Qt雷達探測教程

    本文主要介紹如何使用Qt開發雷達探測程序,並展示一個簡單的雷達探測示例。 一、環境準備 在開始本教程之前,需要確保你的開發環境已經安裝Qt和Qt Creator。如果沒有安裝,可以…

    編程 2025-04-29
  • 猿編程python免費全套教程400集

    想要學習Python編程嗎?猿編程python免費全套教程400集是一個不錯的選擇!下面我們來詳細了解一下這個教程。 一、課程內容 猿編程python免費全套教程400集包含了從P…

    編程 2025-04-29
  • Python煙花教程

    Python煙花代碼在近年來越來越受到人們的歡迎,因為它可以讓我們在終端里玩煙花,不僅具有視覺美感,還可以通過代碼實現動畫和音效。本教程將詳細介紹Python煙花代碼的實現原理和模…

    編程 2025-04-29
  • 使用Snare服務收集日誌:完整教程

    本教程將介紹如何使用Snare服務收集Windows伺服器上的日誌,並將其發送到遠程伺服器進行集中管理。 一、安裝和配置Snare 1、下載Snare安裝程序並安裝。 https:…

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28

發表回復

登錄後才能評論