我不久前遇到了路径别名。提到开发人员如何在他们的 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 项目中设置路径别名。
第 1 步:webpack 预处理器
在您的项目中安装 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'