示例 - 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 。