javascript - 如何确定 Node 模块是否可以使用 Webpack 捆绑并在浏览器中运行?

标签 javascript node.js webpack

Webpack 能够捆绑 Node 模块,然后将其加载到 html 页面中并在浏览器中使用。但并非所有 Node 模块都可以这样使用。例如,那些使用“fs”模块的模块,或任何其他需要突破浏览器沙箱或依赖于此类模块的模块。

所以我的问题是:有没有一种直接的方法来确定模块是否可以在浏览器中使用,而不需要尝试一下?

我正在开发一个使用 Webpack 的 Web 应用程序,并且我需要用于各种事物的库。通常我找到的库被打包为 Node 模块,并且我在使用它们方面取得了相当的成功。然而,当我遇到一个库时,我永远不确定它是否真的可以在浏览器上运行,而不必每次都尝试它们。有更好的办法吗?

最佳答案

源代码、自述文件是很好的起点。根据功能,您还可以很好地猜测它是否适用于客户端。任何依赖于操作系统的东西,如文件 I/O、数据库等都可以轻松排除。其他人则需要更深入的检查。

另一个需要寻找的地方是他们的 API 是否具有等效的 HTML5 API(例如 fetch API -> iso-fetch 等)。使用 MDN docs了解等效的 API。

如有疑问,请询问开发人员 - 提出问题或使用他们规定的沟通媒介(聊天/gitter/slack 等)。

这个问题本质上是非常笼统的,因此答案不能是具体的。不,没有捷径可以解决这个问题,抱歉!

关于javascript - 如何确定 Node 模块是否可以使用 Webpack 捆绑并在浏览器中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52883983/

相关文章:

javascript - 测试 jest 和 new Date()

javascript - Webpack 静态字段

javascript - 将全局参数传递给 statechaned 函数

javascript - 有没有办法同步服务器端和客户端的验证过程?

node.js - 如何在现有的 NodeJS 后端启用 ocsp 装订?

javascript - MongooseServerSelectionError: 连接 ECONNREFUSED::1:27017

node.js - NodeJS & SSL - "bad password read"

javascript - 如何解决 eslint 中的 import() (以前的 System.import())语法错误?

javascript - 将回调从模块 A 传递到 B 并绑定(bind) this,仍然具有 B 的范围。使用 babel

javascript - Angular 1.x 迁移性能问题