在工作流程(grunt、gulp、npm)中,最好:
- 测试
- 转换为 ES5
- 交付(捆绑、缩小等)
或者
- 转换为 ES5
- 测试
- 交付(捆绑、缩小等)
第一种方法,我会给我的单元测试库提供一个预处理器(如./node_modules/.bin/mocha --compilers js:babel/register example.js
),并且仅然后我将继续进行转译。第二种方法,我将测试转译步骤的输出。
#1 或#2 有什么注意事项吗?期待了解这两种方法的优缺点。
最佳答案
对我来说,对将要发送给客户的代码运行测试似乎是有意义的。
按照这个逻辑,您应该针对转译的代码运行测试。
但是这里有两种思路:
- 我们没有编写 babel,我们不应该测试它的效果
- 我们没有写 babel 并不重要,无论如何我们都应该测试我们的转译后代码是否有效
对于某些依赖项,我订阅#1,但对于 babel 等构建工具,我倾向于订阅#2
Babel 很棒,但它并不完美。它也可能会犯错误,我认为最好采取防御措施,并在可能的情况下在构建/测试中发现这一点。
对于其他事情,例如在代码中包含库,我更有可能信任提供的测试套件。例如,如果我要编写一个 React 应用程序,我就不会费心为 React 特定功能编写测试。
关于javascript - 在 Babel 项目工作流程中,首先运行单元测试然后再进行转换是否更有意义,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33228754/