插件窝 干货文章 Cypress 中的路径别名

Cypress 中的路径别名

class div position relative 806    来源:    2024-10-23

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