我不久前遇到了路径别名。提到开发人员如何在他们的 react 和 node 项目中导入的文章看起来很好。我想知道我是否可以在我的赛普拉斯自动化中使用此功能。
让我给你一些背景信息。因此,我的项目中的导入通常如下所示:
import productspage from '../../pages/productspage';
import navigation from '../../pages/navigation';
import testdata from '../../../../fixtures/product-listing.json'
但是使用路径别名,导入看起来像:
import productspage from '@pages/productspage';
import navigation from '@pages/navigation';
import testdata from '@fixtures/product-listing.json'
更干净了,对吗?
按照说明在您的 cypress 项目中设置路径别名。
在您的项目中安装 webpack 预处理器插件。这最终将有助于解决路径别名。
npm install --save-dev @cypress/webpack-preprocessor
第 2 步:webpack 选项
创建 webpack 选项,其中将包含别名路径的引用。您可以根据您的喜好将此对象保留在 cypress.config.js 或单独的文件中。
const wpoptions = {
webpackoptions: {
resolve: {
alias: {
'@pages': path.resolve(__dirname, './cypress/e2e/pages'),
'@fixtures': path.resolve(__dirname, './cypress/fixtures'),
'@': __dirname,
},
},
},
watchoptions: {},
};
第 3 步:配置预处理器插件
接下来,配置 cypress 在每个文件上使用 webpack 预处理器,并使用上一步中指定的选项
setupnodeevents(on, config) {
on('file:preprocessor', webpackpreprocessor(wpoptions));
}
第四步:添加jsconfig路径
此步骤将为您选择的 ide 启用智能感知。将以下设置添加到项目根目录下的 jsconfig.json 文件中。
{
"compileroptions": {
"paths": {
"@pages/*": [
"./cypress/e2e/pages/*"
],
"@fixtures/*": [
"./cypress/fixtures/*"
],
"@/*": [
"./*"
]
}
}
}
仅此而已!现在您可以像这样创建导入
import productspage from '@pages/productspage';
import navigation from '@pages/navigation';
import testdata from '@fixtures/product-listing.json'