gpt4 book ai didi

javascript - 具有依赖关系的 UMD 终极 JS 模块解决方案?

转载 作者:行者123 更新时间:2023-11-30 17:45:26 28 4
gpt4 key购买 nike

我维护和协作一些用 CommonJS 编写的 JavaScript 模块,这些模块需要高质量的 UMD 包装器。

依赖项来自 npm 但至少有 CommonJS 和 AMD 支持(或者我可以添加它)。

CommonJS版本进行npmUMD封装模块会推送到bower

包装器必须在浏览器(AMD + 全局变量)和 Node.js(任何和其他 CommonJS 系统,如果可能的话)中工作。最好使用 Grunt 进行任何自动化(我在 grunt 方面非常得心应手)。

我花了很长时间在谷歌上搜索 en SO,但这是一团糟。

一些有希望的人并没有完全削减它(或者我遗漏了一些东西,这是完全有可能的):

  • 浏览器
  • gluejs
  • 咕噜咕噜

我到处都能找到像这样绝望的结构:http://rathercurio.us/building-umd-modules-with-dependencies-with-browserify ,但我对这种 hackery 并不感冒。

有什么好的建议吗?我会接受任何指示、链接或提示。

编辑:澄清:最后说的是,理想的解决方案不应该要求我们手动组装大量样板模板代码并产生新的错误。不过,我很喜欢配置和指定内容。

最佳答案

您的第一站和最后一站应该是 urequire.org , Universal Module Converter 做的不仅仅是将 CommonJS 和 AMD javascript 模块转换为 UMD(或 AMD 或 CommonJS 或使用 rjs/almond 的独立模块)。

它允许您在转换时操作模块的代码和依赖项:注入(inject)、替换或删除代码和依赖项、导出到全局对象(窗口)或您的包、注入(inject)和可选地合并公共(public)代码(如初始化),添加运行时信息,缩小等等。

其中大部分使用简单但非常强大的声明和可选的回调来进行细粒度操作。它适用于独立的配置文件(.js.coffee.json.yml 等),并且作为-是一个gruntjs config

uRequire 从使用 javascript、coffeescript、livescriped、coco 和 icedcoffeescript 编写的源模块编译,无需任何插件。

忘记样板、代码仪式和重复要求。转换模板基于众所周知的 UMDjs但可以通过声明进行自定义以隐藏或提供功能。

uRequire 是开源的,MIT 许可证和 hosted on github由我创作:-)

关于javascript - 具有依赖关系的 UMD 终极 JS 模块解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20251597/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com