PHP前端开发

Cypress 中的路径别名

百变鹏仔 3天前 #JavaScript
文章标签 别名

我不久前遇到了路径别名。提到开发人员如何在他们的 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'