示例 - file.js
在這個例子中,我們有一個名為 file.js 的檔案。
假設你必須使用 JavaScript 和 NodeJS 查詢字串模組解析 URL。
要完成此任務,你只需在檔案中插入以下語句:
const querystring = require('querystring');
var ref = querystring.parse("foo=bar&abc=xyz&abc=123");
這個片段在做什麼?
首先,我們建立一個查詢字串模組,該模組提供用於解析和格式化 URL 查詢字串的實用程式。它可以使用以下方式訪問:
const querystring = require('querystring');
然後,我們使用 .parse()
方法解析 URL。它將 URL 查詢字串(str)解析為鍵和值對的集合。
例如,查詢字串'foo=bar&abc=xyz&abc=123'
被解析為:
{ foo: 'bar', abc: ['xyz', '123'] }
不幸的是,瀏覽器沒有定義 require 方法,但是 Node.js 沒有。
安裝 Browserfy
使用 Browserify,你可以編寫使用 require 的程式碼,方法與在 Node 中使用它的方式相同。那麼,你是如何解決這個問題的?這很簡單。
- 第一個安裝節點,隨 npm 一起提供。然後做:
npm install -g browserify
- 切換到 file.js 所在的目錄,並使用 npm 安裝我們的查詢字串模組:
npm install querystring
注意: 如果你不更改特定目錄,該命令將失敗,因為它找不到包含該模組的檔案。
- 現在使用 browserify 命令遞迴地將從 file.js 開始的所有必需模組繫結到一個名為 bundle.js 的檔案中(或者你喜歡的任何名稱) :
browserify file.js -o bundle.js
Browserify 解析抽象語法樹 for require()
呼叫遍歷你的整個依賴圖
- 最後將單個標籤放入你的 html 中,你就完成了!
<script src="bundle.js"></script>
什麼情況是,你得到你的舊 .js 檔案(組合 file.js 即是)和新建立的 bundle.js 檔案。這兩個檔案合併為一個檔案。
重要
請記住,如果你想對 file.js 進行任何更改,並且不會影響程式的行為。只有在編輯新建立的 bundle.js 時,你的更改才會生效
那是什麼意思?
這意味著如果你想出於任何原因編輯 file.js ,更改將不會產生任何影響。你真的要修改 bundle.js 因為它是一個合併 bundle.js 和 file.js 。