前陣子在看 Facebook 的 react/flux 的架構中有注意到一點就是 browserify
在 browserify 的官網有講到它是一個能夠將 node module 的程式載入到前端的 JS 中
只要簡單的透過 require 函式即可,很像以前很常在用的 RequireJS
而恰好 flux 是被 Facebook 註冊為一個 npm 內的 node module
所以在 flux 的 TODO 範例中,他們就是用 browserify 來將 flux 的程式載入到前端
也順便地將 react 透過 browserify 載入,言下之意就是表示
react 和 flux 這兩個都是透過 npm install 進去的,可以透過 Github 上的 package.json 得知,如下
這樣我們在前端的 javascript 中就可以利用下面的方式引入 flux 或 react
但如果你習慣將前端的套件透過 Bower 來管理而不是 npm 的話
那麼在 Facebook 的 react/flux 架構中要怎達成呢? 這個問題馬上就浮現在我腦中...
也就是說今天我剛好都是用 Bower 來管理前端 react, bootstrap ... 等等
那要怎麼透過 browserify 來達成相同的目的呢?
找了一下剛好發現在 Github 上有人寫了一個叫 debowerify 的 browserify transform
簡單說 debowerify 能夠輕易地將任何的 Bower 的元件透過 browserify 載入到前端中
所以這篇就簡單的來介紹一下如何撰寫一個簡單的 React 程式並搭配 browserify 以及 debowerify
再開始之前可以先看一下我之前寫的 React.js - A HelloWorld example with Express and Node.js
因為接下來的範例同樣會以 Express 以及 Node.js 作為基本的環境
我們可以透過下面一連串的指令來初始化這次的範例
上述的第5個指令安裝的 reactify 的元件,它是一個對於 JSX 的 browserify transform
原則上你沒有用 reactify 的話你是沒辦法透過 browserify成功 build 出結果的
而 reactify 內部也是使用 react-tools 這個元件來作 JSX 的轉換(上一篇有提到 react-tools)
接下來就可以開始寫一個簡單的 React 程式了
最後就是頁面的 Jade 程式
跟先前的教學一樣,我們需要加入一個轉換 JSX 後的程式,先前是用 react-tools
這次我們就要透過 browserify + reactify + debowerify 來完成目前的範例
在執行 browserify 的指令來執行 build 的過程前,需要修改一下 package.json
讓 browserify 能夠認得 source transform
完成後執行以下指令就會在 public/js/build 目錄下產生 build.js
到這邊就大功告成了,接下來就用 npm start 啟動 node server 並瀏覽結果
最後附上這次範例的 source code >>>點我<<<
沒有留言:
張貼留言