揭开浏览器 JavaScript 中未定义的“require”难题
当尝试在客户端集成来自外部 JavaScript 文件的功能时,一个常见的问题是:绊脚石出现了:难以捉摸的“require”功能仍然难以捉摸。这是因为,与服务器端对应项不同,“require”不是在浏览器 JavaScript 环境中原生定义的。
和谐函数调用的三种途径
克服这个问题障碍并从外部脚本无缝调用函数,开发人员必须在三种不同的方法之间进行选择:
1.拥抱原生脚本标签:
- 利用 <script>标签仍然是加载外部脚本和访问其导出函数的简单解决方案。</script>
2.利用 CommonJS 实现:
- CommonJS 实现(例如 Browserify 和 Webpack)模拟 Node.js 中的同步依赖管理。它们促进了在浏览器 JavaScript 环境中使用 Node.js 模块。
3.采用异步模块定义(AMD):
- AMD 实现,例如 RequireJS,优先考虑模块的异步加载。这种方法支持动态模块依赖管理,确保正确的模块解析和执行。
解读选项:个案指南
- CommonJS:适合需要同步依赖且需要复杂代码捆绑的场景必要的。
-
AMD:非常适合异步加载模块,允许更大的灵活性和模块化。
-
脚本标签:适用于简单的脚本集成具有已知的依赖链。
进一步注意事项:
- Bower 虽然有助于包依赖关系,但不规定模块定义(CommonJS 或 AMD)。
- Browserify 是推荐的 CommonJS 实现,因为它易于使用与 Node.js 模块的使用和兼容性。
- RequireJS 是 AMD 实现的流行选择,提供异步模块加载和依赖管理。
以上是为什么'require()”在浏览器 JavaScript 中不起作用,有哪些替代方案?的详细内容。更多信息请关注PHP中文网其他相关文章!