Browserify与全局模块相结合

时间:2014-11-20 07:43:07

标签: javascript browserify

我是Browserify的新手,所以如果这听起来像是一个根本愚蠢的想法,我会提前道歉。

上下文:我一直在使用带有一个全局命名空间的模块化设计编写我的Web应用程序(假设为ns,并且通过命名空间访问模块,如ns.moduleA。我使用grunt连接所有JS文件并手动管理依赖项(它们的连接顺序)。在我发现Browserify之后,我想将我的代码库迁移到它。

然而,该项目取决于许多库,其中相当一部分似乎不能很好地与AMD或CJS(根据他们的github问题列表),并通过浏览器解决方案,如browserify-shim等,似乎非常痛苦。

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

问题:这是一个好习惯吗? (我怀疑不是),为什么?

谢谢。

1 个答案:

答案 0 :(得分:2)

在进行了一些研究之后,我发现了这篇文章,这对我的情况很有帮助。这是它的链接,也许它会帮助其他人分享同样的问题。 How do I use Browserify with external dependencies?