首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >测试JS模块是否兼容CommonJS或AMD

测试JS模块是否兼容CommonJS或AMD
EN

Stack Overflow用户
提问于 2014-07-18 21:52:04
回答 1查看 166关注 0票数 4

有没有办法自动测试JavaScript模块是否与CommonJS (节点)或AMD模块格式兼容?此外,如何将其编写为Grunt任务?

兼容性是模块的一个重要特性,应该至少在一定程度上能够自动测试。例如,构建配置中的更改可能会产生兼容性错误,只使用模块的浏览器界面的单元测试无法注意到该错误,就像QUnit的情况一样。也有可能一个模块(例如,自制的UMD wrapper)的兼容性启用代码是如此混乱,以至于很难说代码中其他地方的更改是否会对代码的兼容性部分产生影响。

可以使用工具来生成可能正确的不同模块格式的包装器。例如,grunt-umduRequire就是这样的工具。但是,由于它们也依赖于构建配置,那么您如何在没有任何测试的情况下确保兼容性确实存在呢?

EN

回答 1

Stack Overflow用户

发布于 2015-11-20 05:44:35

我不认为有一个开箱即用或显而易见的解决方案。

一般来说,你可以采用几种方法来解决你的问题:

  1. 以一种模块格式编写代码,并使用转译器生成其他模块格式。Babel (5)在这方面做得很好,但可能还有其他的,
  2. 使用像esprima这样的解析器来静态分析代码。像https://github.com/umdjs/umd上的那些“标准”包装器可能很容易检测到模式。自定义包装器可能会更难一些,您可能需要进行一些修改才能正确完成它。
  3. Trial-and-error:让你的任务创建文件(例如,从.jade模板生成),这些文件以你关心的每种方式(AMD,浏览器全局变量)包含假设的模块,然后“运行”这些文件(例如,使用nightwatch或selenium),并查看是否出现任何错误。(如果您试图加载的模块具有依赖关系,这可能很难正确执行)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24826682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档