好吧,我看了看,看起来并没有看到一个看起来像我的问题,也没有一个完全满足我需要的项目。这可能是因为我做了一些疯狂的事情,而且我也要求一些困难的事情。但我想看看别人的想法。
我正在构建我的第一个大型单页面应用程序。我设置它的方法是将其分解为许多NPM模块。我喜欢这个,因为NPM为构建纯粹的节点运行单元测试提供了一个很好的环境,一种方法可以将我的一些代码重用于我们公司的其他项目,并强制分离关注点。这是一般的想法:
这意味着很多库,以及许多常见的依赖项(Underscore,moment,EventEmitter2等)。
现在我需要弄清楚如何将所有代码放入浏览器中。理想情况下,我想要一些具有 browserify 特性的东西(将模块和依赖关系整合到单个文件中以减少资源回调),但是有一些 requirejs 的异步加载DNA(我宁愿不必预先加载我的整个应用程序;能够在用户导航时调用块是有用的)。
但是,我在调和上述内容时遇到了麻烦。我得到了需要尝试做的事情,但每次我尝试将它用于已经构建的NPM模块(不是AMD模块,虽然我很高兴以AMD-ish方式编写该中心项目)但我真的很困惑这种感觉并不是真正意义上的。对于单页面应用程序,它似乎只是将所有内容解析为一个文件,因为我的动态资源是完整的依赖项而不是单个文件?当然,Browserify的唯一目的是将Hulk Smashing所有代码整理到一个文件中。我可以使用Browserify单独捆绑每个NPM模块,但后来我复制了每个模块的公共依赖项。我看了很多其他项目,他们似乎都比捆绑方面更能解决客户端问题。我在这里缺少什么?
[在管道梦模式中,我也喜欢注入,部分原因是它是由LinkedIn编写的(在我的脑海中有良好的声誉),还有它的localStorage缓存。] < / em>的