JavaScript 本身不支持模块,但社区已经创建了令人印象深刻的解决方案。要管理模块,您可以使用所谓的 包管理器,它们 负责发现、安装、依赖管理等等。
JavaScript 模块的两个 最重要(但不幸的是不兼容)的标准是:
该标准的主要实现是 Node.js 模块(Node.js 模块具有一些超出 CJS 的功能)。其特点包括
该标准最流行的实现是 RequireJS。其特点包括
eval()
或静态编译步骤的情况下工作说到 包管理器,npm(Node Packaged Modules)是 Node.js 的首选。对于 浏览器,以下两个选项很受欢迎(还有其他选项):
对于普通的 Web 开发,您应该使用 RequireJS 或 Browserify 等模块系统。但是,有时您只想快速完成一个简单的任务。那么以下简单的模块模式可以帮助您:
var
moduleName
=
function
()
{
function
privateFunction
()
{
...
}
function
publicFunction
(...)
{
privateFunction
();
otherModule
.
doSomething
();
// implicit import
}
return
{
// exports
publicFunction
:
publicFunction
};
}();
前面是一个存储在全局变量 moduleName
中的模块。它执行以下操作
otherModule
)privateFunction
publicFunction
要在网页上使用该模块,只需通过 <script>
标签加载其文件及其依赖项的文件
<script
src=
"modules/otherModule.js"
></script>
<script
src=
"modules/moduleName.js"
></script>
<script
type=
"text/javascript"
>
moduleName
.
publicFunction
(...);
</script>
如果在加载模块时没有访问其他模块(moduleName
就是这种情况),则模块加载顺序无关紧要。
以下是我的评论和建议