具有依赖关系的UMD的终极JS模块解决方案
Ultimate JS module solution for UMD with dependencies?
我维护并协作使用CommonJS编写的一些JavaScript模块,这些模块需要高质量的UMD包装器。
依赖项来源于npm
,但至少支持CommonJS和AMD(或者我可以添加它)。
CommonJS版本在npm
上运行。UMD封装的模块将被推送到bower
包装器必须在浏览器(AMD+全局)和Node.js(如果可能的话,任何和其他CommonJS系统)中工作。任何自动化都应该最好使用Grunt(我在Grunt方面很得心应手)。
我花了很长时间搜索谷歌,但它一团糟。
一些有希望的人并没有完全切断它(或者我错过了一些东西,这是完全可能的):
- 浏览
- 胶水
- 咕哝umd
我到处都能找到这样绝望的结构:http://rathercurio.us/building-umd-modules-with-dependencies-with-browserify,但我对这种花招并不感冒。
有什么好的建议吗?我会接受任何指针、链接或提示。
编辑:澄清:最后一点是,理想的解决方案不应该要求我们手工组装大块的样板模板代码并创建新的bug。不过,我对配置和指定东西很冷静。
您的第一站也是最后一站应该是urequire.org,这是一个通用模块转换器,它不仅可以将CommonJS和AMD javascript模块转换为UMD(或者AMD或CommonJS,或者使用rjs/ammond的独立模块)。
它允许您在转换时操作Module的代码和依赖项:注入、替换或删除代码和依赖关系,导出到全局对象(window
)或您的捆绑包,注入&可选地合并公共代码(如初始化),添加运行时信息,缩小等等。
其中大多数使用简单但功能强大的声明&用于细粒度操作的可选回调。它可以与独立的配置文件(.js
、.coffee
、.json
、.yml
等)一起工作,并作为grumjs-config
uRequire从用javascript、coffescript、livescriped、coco&没有任何插件的icedcoffescapet。
忘记样板,代码仪式和重复要求。转换模板基于众所周知的UMDj,但可以通过声明进行自定义以隐藏或提供功能。
uRequire是开源的,MIT许可证,托管在github上,由我撰写:-)
- 正在更改node.js模块变量
- react native中常见的js模块
- grunt serve:dist时找不到Angular.js模块,但grunt serve工作正常
- 如何为JS模块添加包含路径
- 在混合基本 URL 下动态加载 require.js 模块
- 如何在公共js模块中从web服务返回数据
- 找不到以前导入的 JS 模块
- 从 Node.js 模块中的缓冲区实例中逐行读取字符串
- 定义 Backbone.Layout 作为 need js 模块
- 在节点中.js“模块”始终是一个对象
- Node.js模块的异步初始化
- 不要自动嘲笑常见的js模块
- Node.js模块问题
- Node.JS-Q模块-承诺
- Node.js-模块导出静态变量
- 正在从node.js模块获取D9025警告和C1083错误..I'I’我没有主意
- 从node.js模块中向JSON添加原型函数
- 是否可以创建一个require.js模块,该模块在加载完成后自行决定
- 检查node.js模块是否可用
- 将JavaScript代码迁移到具有String.prototype扩展名的node.js模块