之前有人问过这个问题,答案是否定的。但是现在,有了 browserify/webpack,我可以像在服务器上那样编写代码吗?它会在浏览器中运行,还是有任何限制使这变得不可能?
你不能。在浏览器中启动服务器需要访问浏览器中根本不存在的低级功能。 Browserify 无法向浏览器添加基本的低级功能,因为浏览器不具备这些功能,因此需要额外的本机代码支持才能正常工作。
Browserify 只能打包纯 Javascript 的代码,或者构建在浏览器中已存在的基础设施之上的代码,或者可以使用构建在浏览器中现有功能之上的一些纯 javascript 进行模拟的代码。
因此,例如,您可以从 Node.js 获取一个纯 JavaScript 的加密哈希库,并且不依赖于浏览器中不存在的任何功能,并且您可以对其进行浏览器化(例如重新打包)以在浏览器中使用它。但是,您无法采用使用低级 UDP 通信的 Node.js 包,因为浏览器中不存在对 UDP 的底层访问。
一般来说,如果 node.js 代码执行 I/O 或操作其他进程或使用任何具有本机代码的模块,它可能无法与 browserify 一起使用(对于某些文件 I/O 有一些解决方法)。
有关更多信息,请参阅:
Browserify 有任何限制吗? https://stackoverflow.com/questions/41759020/does-browserify-have-any-limitations
浏览器兼容性 https://github.com/substack/node-browserify#compatibility
因此,您不会说出您要解决的实际问题是什么,但通常您会在某处启动一个实际的服务器,并让浏览器连接到该服务器。如果您希望某个特定的浏览器会话看起来是“主”,那么您当然可以让您的客户端/服务器以这种方式运行。一个客户端可以是连接到同一服务器的其他客户端的主客户端(看起来本质上是服务器本身)。这一切都取决于您如何对服务器进行编程以及它如何与连接到它的各种客户端进行通信。实际服务器可以成为其他客户端的代理,客户端可以通过与实际服务器的代理连接来访问类似服务器的功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)