首页 > 解决方案 > Javascript 中的模块化

问题描述

我知道,如果浏览器要渲染多个 JS 文件,其中显然有标识符,则全局范围会被此标识符污染。我也知道避免这种情况的一种方法是使用模块,这些模块(在我的理解中)只是具有上述标识符作为成员的对象,因此有点模仿 C++ 命名空间。我也在学习 Node.js,并且有一个内置的模块系统可以简化这项任务,所以我的问题是:如何在发送到浏览器进行渲染的 js 文件中使用模块?

谢谢。

标签: javascript

解决方案


browserify像这样的工具WebPack正是您正在寻找的工具(我个人更喜欢 browserify 而不是 WebPack)。看看这个答案,它解释了你的很多顾虑。

Node.JS中,您可以使用module.exports关键字导出模块,但不能仅通过在<script>标签中要求它们来在浏览器中导入这些模块。那是因为,浏览器不理解模块系统,并且一切都在全局window对象的上下文中工作,所以我相信你不会想要的module.exportswindow.module.exports因此,您使用 browserify 之类的工具将 Node.JS 脚本处理成您的浏览器可以理解的内容。


推荐阅读