预处理器API
预处理器是负责为浏览器准备 支持文件 或 测试规范文件 的插件。
预处理器可以将文件从其他语言(如CoffeeScript或ClojureScript)或更新版本的JavaScript(如ES2017)转译。
预处理器通常还会监视源文件的更改,重新处理它们,然后通知Cypress重新运行测试。
示例
我们创建了三个预处理器作为示例供您参考。这些是完全可用的预处理器。
代码中包含了解释如何使用预处理器API的注释。
默认设置
默认情况下,Cypress已预装了webpack预处理器。
webpack预处理器支持:
- 通过Babel处理ES2015和JSX
- TypeScript
- CoffeeScript
1.x.x
- 文件监视和缓存
info
您是否想要更改webpack的默认选项?
如果您的项目中已经使用了webpack,可以传入您的webpack配置, 如这里所示。
如果您的项目中没有使用webpack,或者希望保留大部分默认选项,您可以 修改默认选项。 编辑选项允许您执行以下操作:
- 添加自己的Babel插件
- 修改TypeScript编译选项
- 添加对CoffeeScript
2.x.x
的支持
使用方法
caution
⚠️ 这段代码属于
setupNodeEvents 函数的一部分,
因此会在 Node 环境中执行。你不能在此函数中调用 Cypress
或 cy
命令,
但可以直接访问文件系统和操作系统的其他部分。
要使用预处理器,您应该在
setupNodeEvents
函数中绑定到file:preprocessor
事件:
- cypress.config.js 文件
- cypress.config.ts 文件
const { defineConfig } = require('cypress')
module.exports = defineConfig({
// setupNodeEvents can be defined in either
// the e2e or component configuration
e2e: {
setupNodeEvents(on, config) {
on('file:preprocessor', (file) => {
// ...
})
},
},
})
import { defineConfig } from 'cypress'
export default defineConfig({
// setupNodeEvents can be defined in either
// the e2e or component configuration
e2e: {
setupNodeEvents(on, config) {
on('file:preprocessor', (file) => {
// ...
})
},
},
})