mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-24 20:00:37 +00:00
docs: charles jar package
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
|
||||
|
||||
# 前端模块化演进之路
|
||||
|
||||
有这样一个场景,客户端运行很久,但是法务部和数据部需要收集用户的一些信息,这些信息收集好之后需要进行相应的数据处理,之后上报到服务端。客户端提供一个纯粹的 JS 执行引擎,不需要 WebView 容器。iOS 端有成熟的 JavaScriptCore、Android 可以使用 V8 引擎。这样一个引擎配套有一个 SDK,访问 Native 的基础能力和数据运算能力,可以看成是一个阉割版的 Hybrid SDK 额外增加了一些数据处理能力。
|
||||
@@ -123,12 +125,14 @@ define(function(require, exports) {
|
||||
4. 跨环境共享模块: CMD 模块定义规范与 NodeJS 的模块规范非常相近,所以通过 Sea.JS 的 NodeJS 版本,可以方便的实现模块的跨服务器和浏览器共享。
|
||||
|
||||
|
||||
|
||||
|
||||
## CommonJS 规范
|
||||
|
||||
CommonJS 是服务器端模块的规范。NodeJS 采用了这个规范。CommonJS 加载模块是同步的,所以只有加载完成后才能执行后面的操作。
|
||||
因为服务器的特点,加载的模块文件一般都存在在本地硬盘,所以加载起来比较快,不用考虑异步的方式。
|
||||
|
||||
CommonJS 模块化的饿规范中,每个文件都是一个模块,拥有独立的作用域、变量、以及方法等,对其他模块不可见。 CommonJS 规范规定,每个模块内部, **module** 变量表示当前模块,它是一个对象,它的 **exports** 属性是对外的接口,加载某个模块,其实是加载该模块的 module.exports 属性,require 方法用于加载模块。
|
||||
CommonJS 模块化的规范中,每个文件都是一个模块,拥有独立的作用域、变量、以及方法等,对其他模块不可见。 CommonJS 规范规定,每个模块内部, **module** 变量表示当前模块,它是一个对象,它的 **exports** 属性是对外的接口,加载某个模块,其实是加载该模块的 module.exports 属性,require 方法用于加载模块。
|
||||
|
||||
|
||||
```Javascript
|
||||
@@ -178,7 +182,15 @@ id 是模块的名字,是可选参数。 dependencies 指定了该模块所依
|
||||
require([module], callback)
|
||||
```
|
||||
|
||||
**AMD 规范允许输出模块兼容 CommonJS 规范,这时 define 方法如下**
|
||||
require 命令用于导入其他模块提供的功能
|
||||
|
||||
return 命令用于规范模块的对外输出
|
||||
|
||||
define.amd 属性是一个对象,此属性的存在用来判断是否遵循 AMD 规范。
|
||||
|
||||
|
||||
|
||||
AMD 规范允许输出模块兼容 CommonJS 规范,这时 define 方法如下
|
||||
|
||||
```Javascript
|
||||
define(['module1', 'module2'], function(module1, module2) {
|
||||
@@ -201,6 +213,8 @@ define(function(require, exports, module) {
|
||||
});
|
||||
```
|
||||
|
||||
|
||||
|
||||
优点: 适合在浏览器环境中加载模块,可以实现并行加载多个模块
|
||||
缺点: 提高了开发成本,并不能按需加载,而是提前加载所有的依赖
|
||||
|
||||
@@ -299,10 +313,18 @@ UMD(Universal Module Definition)是随着大前端的趋势产生,希望
|
||||
}))
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
## ES Modules
|
||||
|
||||
它是 Javascript 官方的标准化模块系统,所以会被越来越多的浏览器所支持,可以很方便的在浏览器中使用。同时兼容 Node 环境;模块的导入导出通过 import 和 export 来实现,可以和 Commonjs 混用。
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
## 回到正题
|
||||
|
||||
Cheerio 如何打包到普通的 JS 执行环境中。
|
||||
|
||||
Reference in New Issue
Block a user