示例 - 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 中使用它的方式相同。那么,你是如何解决这个问题的?这很简单。

  1. 第一个安装节点,随 npm 一起提供。然后做:

npm install -g browserify

  1. 切换到 file.js 所在的目录,并使用 npm 安装我们的查询字符串模块:

npm install querystring

注意: 如果你不更改特定目录,该命令将失败,因为它找不到包含该模块的文件。

  1. 现在使用 browserify 命令递归地将从 file.js 开始的所有必需模块绑定到一个名为 bundle.js 的文件中(或者你喜欢的任何名称) :

browserify file.js -o bundle.js

Browserify 解析抽象语法树 for require() 调用遍历你的整个依赖图

  1. 最后将单个标签放入你的 html 中,你就完成了!

<script src="bundle.js"></script>

什么情况是,你得到你的旧 .js 文件(组合 file.js 即是)和新创建的 bundle.js 文件。这两个文件合并为一个文件。

重要

请记住,如果你想对 file.js 进行任何更改,并且不会影响程序的行为。只有在编辑新创建的 bundle.js 时,你的更改才会生效

那是什么意思?

这意味着如果你想出于任何原因编辑 file.js ,更改将不会产生任何影响。你真的要修改 bundle.js 因为它是一个合并 bundle.jsfile.js