我知道,如果浏览器要渲染多个 JS 文件,而这些文件显然内部有标识符,那么全局范围就会被这个标识符污染。我也知道避免这种情况的一种方法是使用模块(在我的理解中)只是具有上述标识符作为成员的对象,因此有点模仿 C++ namespace 。我也在学习 Node.js 并且有一个内置的模块系统可以简化这项任务所以我的问题是:如何在发送到浏览器进行渲染的 js 文件中使用模块?
谢谢。
最佳答案
类似 browserify
的工具和 WebPack
正是您正在寻找的(我个人更喜欢 browserify 而不是 WebPack)。看看this answer ,它解释了您的很多顾虑。
在Node.JS
,您可以使用 module.exports
导出模块关键字,但您不能仅通过在 <script>
中要求它们来在浏览器中导入这些模块标签。那是因为,浏览器不理解模块系统,一切都在全局 window
的上下文中工作。对象在那里,所以module.exports
简单地变成window.module.exports
我相信你不会想要的。因此,您可以使用 browserify 等工具将 Node.JS 脚本处理成您的浏览器可以理解的内容。
关于javascript - Javascript 中的模块化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113279/