首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用节点16在Cypress 9中导入插件?

如何用节点16在Cypress 9中导入插件?
EN

Stack Overflow用户
提问于 2021-11-12 14:36:46
回答 1查看 564关注 0票数 1

我正在努力将外部库导入插件文件。

如果我做了

代码语言:javascript
复制
const clipboardy = require('clipboardy')

它写着"Error ERR_REQUIRE_ESM: require/./e2e/node/clipboardy/index.js(不支持/./e2e/cypress/plugins/index.js)“。我也试过

代码语言:javascript
复制
import clipboardy from 'clipboardy'

但这仍然不起作用。我真的不知道怎么解决。

你能帮帮我吗?我在node 16.10上和cypress 9.0.0一起谢谢

编辑:插件文件

代码语言:javascript
复制
const clipboardy = require("clipboardy");
const csv = require("node-xlsx").default;
const fs = require("fs");

const { lighthouse, pa11y, prepareAudit } = require("cypress-audit");

module.exports = (on, config) => {
  on("task", {
    parseXlsx({ filePath }) {
      return new Promise((resolve, reject) => {
        try {
          const jsonData = csv.parse(fs.readFileSync(filePath));
          resolve(jsonData);
        } catch (e) {
          reject(e);
        }
      });
    },

    getClipboard() {
      return clipboardy.readSync();
    },

    lighthouse: lighthouse(lighthouseReport => {
      const categories = lighthouseReport.lhr.categories;

      const audits = lighthouseReport.lhr.audits;

      const formattedAudit = Object.keys(audits).reduce(
        (metrics, curr) => ({
          ...metrics,
          [curr]: audits[curr].numericValue
        }),
        {}
      );

      const formattedCategories = Object.keys(categories).reduce(
        (metrics, curr) => ({
          ...metrics,
          [curr]: categories[curr].score * 100
        }),
        {}
      );

      const results = {
        url: lighthouseReport.lhr.requestedUrl,
        ...formattedCategories
      };

      console.log("Lighthouse results: [");
      console.log(results);
      console.log("]");

      //      fs.writeJSONSync("../results/audit.json", results);
      //      fs.writeFileSync(
      //        "audit.json",
      //        Buffer.from(JSON.stringify(results), "utf8")
      //      );
    }),

    pa11y: pa11y(pa11yReport => {
      console.log("pa11y results: [");
      console.log(pa11yReport);
      console.log("]");
    })
  });

  on("before:browser:launch", (browser, launchOptions) => {
    prepareAudit(launchOptions);

    if (browser.name === "chromium") {
      launchOptions.args.push(
        "--disable-features=CrossSiteDocumentBlockingIfIsolating,CrossSiteDocumentBlockingAlways,IsolateOrigins,site-per-process"
      );
      launchOptions.args.push(
        "--load-extension=cypress/extensions/Ignore-X-Frame-headers_v1.1"
      );
      launchOptions.args.push("--disable-dev-shm-usage");

      return launchOptions;
    }

    return launchOptions;
  });

  return config;
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-20 08:37:36

这个问题是与ti剪贴板有关的,在第3版中,它变成了一个单独的模块,而不是与Cypress兼容。降级到v2.3解决了这个问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69944606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档