From 76c2fdbe9ccc65244df60929fa17bce3ebc70117 Mon Sep 17 00:00:00 2001 From: xcodebuild Date: Mon, 14 Feb 2022 14:21:21 +0800 Subject: fix case of JavaScript, Javascript -> JavaScript --- .../zh-cn/web/javascript/guide/modules/index.html | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/files/zh-cn/web/javascript/guide/modules/index.html b/files/zh-cn/web/javascript/guide/modules/index.html index 1b0192666f..816f3e13ee 100644 --- a/files/zh-cn/web/javascript/guide/modules/index.html +++ b/files/zh-cn/web/javascript/guide/modules/index.html @@ -11,13 +11,13 @@ translation_of: Web/JavaScript/Guide/Modules ---
{{jsSidebar("JavaScript Guide")}}{{Previous("Web/JavaScript/Guide/Meta_programming")}}
-

这篇指南会给你入门 Javascript 模块的全部信息。

+

这篇指南会给你入门 JavaScript 模块的全部信息。

模块化的背景

-

Javascript 程序本来很小——在早期,它们大多被用来执行独立的脚本任务,在你的 web 页面需要的地方提供一定交互,所以一般不需要多大的脚本。过了几年,我们现在有了运行大量 Javascript 脚本的复杂程序,还有一些被用在其他环境(例如 Node.js)。

+

JavaScript 程序本来很小——在早期,它们大多被用来执行独立的脚本任务,在你的 web 页面需要的地方提供一定交互,所以一般不需要多大的脚本。过了几年,我们现在有了运行大量 JavaScript 脚本的复杂程序,还有一些被用在其他环境(例如 Node.js)。

-

因此,近年来,有必要开始考虑提供一种将 JavaScript 程序拆分为可按需导入的单独模块的机制。Node.js 已经提供这个能力很长时间了,还有很多的 Javascript 库和框架 已经开始了模块的使用(例如, CommonJS 和基于 AMD 的其他模块系统 如 RequireJS, 以及最新的 Webpack 和 Babel)。

+

因此,近年来,有必要开始考虑提供一种将 JavaScript 程序拆分为可按需导入的单独模块的机制。Node.js 已经提供这个能力很长时间了,还有很多的 JavaScript 库和框架 已经开始了模块的使用(例如, CommonJS 和基于 AMD 的其他模块系统 如 RequireJS, 以及最新的 Webpack 和 Babel)。

好消息是,最新的浏览器开始原生支持模块功能了,这是本文要重点讲述的。这会是一个好事情 — 浏览器能够最优化加载模块,使它比使用库更有效率:使用库通常需要做额外的客户端处理。

@@ -40,7 +40,7 @@ translation_of: Web/JavaScript/Guide/Modules

这的确有点简单,但是保持足够简单能够清晰地演示模块。

-

Note: 如果你想去下载这个例子在本地运行,你需要通过本地web 服务器去运行。

+

Note: 如果你想去下载这个例子在本地运行,你需要通过本地 web 服务器去运行。

基本的示例文件的结构

@@ -90,7 +90,7 @@ modules/
  • 这能保证你的模块可以被运行时环境和构建工具识别,比如  Node.js 和 Babel
  • -

    但是我们决定继续使用 .js 扩展名,未来可能会更改。为了使模块可以在浏览器中正常地工作,你需要确保你的服务器能够正常地处理 Content-Type 头,其应该包含 Javascript 的MIME 类型  text/javascript。如果没有这么做,你可能会得到 一个严格 MIME 类型检查错误:“The server responded with a non-JavaScript MIME type (服务器返回了非 JavaScript MIME 类型)”,并且浏览器会拒绝执行相应的 JavaScript 代码。多数服务器可以正确地处理 .js 文件的类型,但是 .mjs 还不行。已经可以正常响应 .mjs 的服务器有 GitHub 页面 和 Node.js 的 http-server

    +

    但是我们决定继续使用 .js 扩展名,未来可能会更改。为了使模块可以在浏览器中正常地工作,你需要确保你的服务器能够正常地处理 Content-Type 头,其应该包含 JavaScript 的MIME 类型  text/javascript。如果没有这么做,你可能会得到 一个严格 MIME 类型检查错误:“The server responded with a non-JavaScript MIME type (服务器返回了非 JavaScript MIME 类型)”,并且浏览器会拒绝执行相应的 JavaScript 代码。多数服务器可以正确地处理 .js 文件的类型,但是 .mjs 还不行。已经可以正常响应 .mjs 的服务器有 GitHub 页面 和 Node.js 的 http-server

     如果你已经在使用相应的环境了,那么一切正常。或者如果你还没有,但你知道你在做什么(比如你可以配置服务器以为 .mjs 设置正确的 Content-Type)。但如果你不能控制提供服务,或者用于公开文件发布的服务器,这可能会导致混乱。

    @@ -184,10 +184,10 @@ reportPerimeter(square1.length, reportList);

    其他模块与标准脚本的不同

    默认导出 versus 命名导出

    @@ -389,7 +389,7 @@ export { Circle } from '/js-examples/modules/module-aggregation/modules/shapes/c

    它们从各个子模块中获取导出,并有效地从shapes.mjs模块中获取它们。

    -

    Note: 即使shapes.mjs文件位于modules目录中,我们仍然需要相对于模块根目录编写这些URL,因此需要/modules/。 这是使用JavaScript模块时混淆的常见原因。

    +

    Note: 即使shapes.mjs文件位于 modules 目录中,我们仍然需要相对于模块根目录编写这些URL,因此需要/modules/。 这是使用JavaScript模块时混淆的常见原因。

    @@ -443,9 +443,9 @@ import { Triangle } from './modules/triangle.mjs';

    如果为了你的模块有问题,这里有一些提示有可能帮助到你。如果你发现更多的内容欢迎添加进来!

    参见

    -- cgit v1.2.3-54-g00ecf