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