99
1010列举一些(出于历史原因):
1111
12- - [ AMD] ( https://en.wikipedia.org/wiki/Asynchronous_module_definition ) — 最古老的模块系统之一,最初由 [ require.js] ( http://requirejs.org/ ) 库实现。
13- - [ CommonJS] ( http://wiki.commonjs.org/wiki/Modules/1.1 ) — 为 Node.js 服务器创建的模块系统。
14- - [ UMD] ( https://github.com/umdjs/umd ) — 另外一个模块系统,建议作为通用的模块系统,它与 AMD 和 CommonJS 都兼容。
12+ - [ AMD] ( https://en.wikipedia.org/wiki/Asynchronous_module_definition ) —— 最古老的模块系统之一,最初由 [ require.js] ( http://requirejs.org/ ) 库实现。
13+ - [ CommonJS] ( http://wiki.commonjs.org/wiki/Modules/1.1 ) —— 为 Node.js 服务器创建的模块系统。
14+ - [ UMD] ( https://github.com/umdjs/umd ) —— 另外一个模块系统,建议作为通用的模块系统,它与 AMD 和 CommonJS 都兼容。
1515
1616现在,所有他们都在慢慢成为历史的一部分,但我们仍然可以在旧脚本中找到它们。
1717
@@ -116,7 +116,7 @@ If you try to open a web-page locally, via `file://` protocol, you'll find that
116116
117117这有很重要的影响。让我们通过示例来看一下:
118118
119- 首先,如果执行一个模块中的代码会带来副作用(side-effect),例如显示一条消息,那么多次导入它只会触发一次显示 — 即第一次:
119+ 首先,如果执行一个模块中的代码会带来副作用(side-effect),例如显示一条消息,那么多次导入它只会触发一次显示 —— 即第一次:
120120
121121``` js
122122// 📁 alert.js
@@ -165,7 +165,7 @@ alert(admin.name); // Pete
165165*/ ! *
166166```
167167
168- 所以,让我们重申一下 — 模块只被执行一次。生成导出,然后它被分享给所有对其的导入,所以如果某个地方修改了 ` admin ` 对象,其他的模块也能看到这个修改。
168+ 所以,让我们重申一下 —— 模块只被执行一次。生成导出,然后它被分享给所有对其的导入,所以如果某个地方修改了 ` admin ` 对象,其他的模块也能看到这个修改。
169169
170170这种行为让我们可以在首次导入时 ** 设置** 模块。我们只需要设置其属性一次,然后在进一步的导入中就都可以直接使用了。
171171
@@ -180,7 +180,7 @@ export function sayHi() {
180180}
181181```
182182
183- 在 ` init.js ` 中 — 我们 APP 的第一个脚本,设置了 ` admin.name ` 。现在每个位置都能看到它,包括在 ` admin.js ` 内部的调用。
183+ 在 ` init.js ` 中 —— 我们 APP 的第一个脚本,设置了 ` admin.name ` 。现在每个位置都能看到它,包括在 ` admin.js ` 内部的调用。
184184
185185``` js
186186// 📁 init.js
@@ -253,7 +253,7 @@ sayHi(); // Ready to serve, *!*Pete*/!*!
253253* ! *
254254 alert (typeof button); // object:脚本可以“看见”下面的 button
255255*/ ! *
256- // 因为模块是被延迟的(deferred0 ,所以模块脚本会在整个页面加载完成后才运行
256+ // 因为模块是被延迟的(deferred ,所以模块脚本会在整个页面加载完成后才运行
257257< / script>
258258
259259相较于下面这个常规脚本:
@@ -347,7 +347,7 @@ import {sayHi} from 'sayHi'; // Error,“裸”模块
347347
348348在实际开发中,浏览器模块很少被以“原始”形式进行使用。通常,我们会使用一些特殊工具,例如 [Webpack](https://webpack.js.org/),将它们打包在一起,然后部署到生产环境的服务器。
349349
350- 使用打包工具的一个好处是 — 它们可以更好地控制模块的解析方式,允许我们使用裸模块和更多的功能,例如 CSS/HTML 模块等。
350+ 使用打包工具的一个好处是 —— 它们可以更好地控制模块的解析方式,允许我们使用裸模块和更多的功能,例如 CSS/HTML 模块等。
351351
352352构建工具做以下这些事儿:
353353
0 commit comments