浏览器化与全局模块相结合

Browserify combined with global modules

本文关键字:模块 相结合 全局 浏览器      更新时间:2023-09-26

我对Browserify很陌生,所以如果这听起来像是一个从根本上愚蠢的想法,我提前道歉。

上下文:我一直在使用具有一个全局命名空间的模块化设计来编写我的 Web 应用程序(假设ns和模块是通过命名空间访问的,就像这样ns.moduleA。我使用 grunt 将所有 JS 文件连接在一起,并手动管理依赖项(它们的串联顺序)。在我发现浏览器化之后,我想将我的代码库迁移到它。

然而,该项目依赖于许多库,其中相当多的库似乎不能很好地与AMD或CJS配合使用(根据他们的github问题列表),并且在研究了诸如browserify-shim等解决方案之后,这似乎是一个相当痛苦的。

建议的解决方案:我连接所有依赖库并将其粘贴到libs.js中,因此这些库都公开到全局命名空间中,因此它们是普遍可访问的。然后对于我的代码,我不必担心require它们,只需按原样使用它们。例如,使用jQuery,我可以简单地做$('a').b(),而不是做var $ = require('jquery'); $('a').b();。我确实意识到这违背了 Browserify 为您管理所有依赖项的理念,但自己管理外部库似乎比使用现有解决方案容易得多。

问题:这是一种好的做法吗?(我怀疑不是),为什么?

谢谢。

经过更多的研究,我发现了这篇文章,这对我的情况很有帮助。这是它的链接,也许它会帮助其他人分享同样的问题。如何将浏览器与外部依赖项一起使用?