javascript - Javascript 中的模块化
问题描述
我知道,如果浏览器要渲染多个 JS 文件,其中显然有标识符,则全局范围会被此标识符污染。我也知道避免这种情况的一种方法是使用模块,这些模块(在我的理解中)只是具有上述标识符作为成员的对象,因此有点模仿 C++ 命名空间。我也在学习 Node.js,并且有一个内置的模块系统可以简化这项任务,所以我的问题是:如何在发送到浏览器进行渲染的 js 文件中使用模块?
谢谢。
解决方案
browserify
像这样的工具WebPack
正是您正在寻找的工具(我个人更喜欢 browserify 而不是 WebPack)。看看这个答案,它解释了你的很多顾虑。
在Node.JS
中,您可以使用module.exports
关键字导出模块,但不能仅通过在<script>
标签中要求它们来在浏览器中导入这些模块。那是因为,浏览器不理解模块系统,并且一切都在全局window
对象的上下文中工作,所以我相信你不会想要的module.exports
。window.module.exports
因此,您使用 browserify 之类的工具将 Node.JS 脚本处理成您的浏览器可以理解的内容。
推荐阅读
- python - 在 Python 中解密最初在 Node.js 中加密的数据
- c - 子菜单级别的 GtkMenu 无法在 ubuntu 20.04 中引发“活动”信号
- kubernetes - 如何在 k8s 的 configmap 中使用节点 ip
- oracle - Oracle Dump() 函数为数字列返回什么值?
- java - 访问内部流java8中的流对象
- wix - 如何在安装程序中可靠地检测已安装的 Net Core 3.1.x Windows 桌面运行时版本
- swift - 不能在属性初始化器中使用实例成员“idnum”;
- java - 在 Spring Boot 中为分段上传设置最大文件大小不适用于 50MB 限制
- docker - 我如何将端口定向到 apache 上的别名
- javascript - hasOwnProperty 返回空