我正在努力将外部库导入插件文件。
如果我做了
const clipboardy = require('clipboardy')它写着"Error ERR_REQUIRE_ESM: require/./e2e/node/clipboardy/index.js(不支持/./e2e/cypress/plugins/index.js)“。我也试过
import clipboardy from 'clipboardy'但这仍然不起作用。我真的不知道怎么解决。
你能帮帮我吗?我在node 16.10上和cypress 9.0.0一起谢谢
编辑:插件文件
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;
};发布于 2021-11-20 08:37:36
这个问题是与ti剪贴板有关的,在第3版中,它变成了一个单独的模块,而不是与Cypress兼容。降级到v2.3解决了这个问题
https://stackoverflow.com/questions/69944606
复制相似问题