我在CommonJS编写的一些需要高质量UMD包装的JavaScript模块上进行维护和协作。具有依赖关系的UMD Ultimate JS模块解决方案?
依赖关系源自npm
,但至少支持CommonJS和AMD(或者我可以添加它)。
的CommonJS的版本的推移npm
的UMD包装的模块将被推到bower
的包装必须工作在浏览器(AMD +全局),并在Node.js的(任何和其他CommonJS的系统如果可能的话)。任何自动化应该最好使用Grunt(我在grunt中非常方便)发生。
我已经花了不少时间去搜索谷歌,但它是一个巨大的混乱。
一些希望那些不太削减它(或者我失去了一些东西,这是完全可能的):
- browserify
- gluejs
- 咕噜-UMD
我在这里找到了像这样绝望的结构:http://rathercurio.us/building-umd-modules-with-dependencies-with-browserify,但我对这样的骇客并不是很酷。
对此有什么好的提示?我会采取任何指针或链接或提示。
编辑:澄清:最后一件事说,理想的解决方案不应该要求我们手工组装大块样板模板代码并创建新的错误。我很喜欢配置和指定的东西。
HTTP着:// urequire。组织/做出一些大胆的声明:)但假设它交付它可能是一个很好。你是否还支持源代码映射(包括转换/合并?)我使用TypeScript和'grunt_concat_sourcemap'很多(都生成映射),当然更愿意调试原始源代码,即使在将它们取回到AMD之后也是如此。 – Bartvds
好吧,如果它提供了:-) uRequire开始作为一个简单的转换AMD到UMD的宠物项目,但是许多功能都是在将它转换成可以执行90%常见任务的工具之后添加的可以在一个典型的grunt文件中找到,只有[10%的努力和样板](http://urequire.org/masterdefaultsconfig.coffee#examples)。不幸的是,源代码和TypeScript是两个功能,它还没有触及,但应该:-( –
我真的很喜欢UMD的功能,它是非常酷的技术。只有我总是倾向于使用我自己选择的(typescript)编译器(这里grunt -ts)对于一个高级用户来说,一个特定的人将会拥有更多的功能,然后是一个通用的捆绑版本(“做一件事,做得很好”)。但是源代码生成(和转换)几乎是现在需要的。我们还将如何调试生成的代码?通过手动从bundle中查找,通过我们曾经到过的任何管道进行查找?那是2010 :) – Bartvds