【问题标题】:How can I determine if a node module can be bundled using Webpack and run in a browser?如何确定节点模块是否可以使用 Webpack 捆绑并在浏览器中运行?
【发布时间】:2018-10-18 23:39:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript node.js webpack


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

      一般同一个库会标明是服务器端还是客户端,例如:

      PageJS:受 Tiny Express 启发的客户端路由器。

      也是不错的选择,也许您正在寻找前端专有库:

      Bower 为前端包管理问题提供了一个通用的、无主见的解决方案

      希望能帮到你!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-04
        • 2020-11-26
        • 2015-07-30
        • 2015-07-31
        相关资源
        最近更新 更多